(算法练习)——数列

要求:
http://codeup.cn/problem.php?cid=100000583&pid=1
说明:
这一题居然在如何输出三角形上花了不少时间。。。= =太不容易了,这些图形的套路有必要总结一下。。理解起来不难
代码:

#include 
#include 
int F(int a){
	if(a == 0 ){	
		return 0;	
	} 
	else if(a == 1 ||a == 2){	
		return 1; 
	} 
	else{	
		return F(a - 1) + F(a - 2);	
	}
}

int main(){
	int n,m;
	int signal = 0;
	int record[100];
	while(scanf("%d",&n) != EOF){
		for(int i = 0;i <n;i++){
			scanf("%d",&m);
			for(int j = 0;j <m*2 - 1;j++){
				record[signal++] = F(j);
			}
			for(int t = 0;t <m;t++){
				for(int s = 2*t + 1;s <=(m-1)*2;s++){
					printf(" ");
				}
				for(int p= 0;p <2*t + 1;p++){
					printf("%d ",record[p]);
				}
				printf("\n");
			}
			//务必重置,不然会把数组占满报错!!
			memset(record,0,sizeof(record));
			signal = 0;
			
		}
	}
}

你可能感兴趣的:(入门篇——算法初步)