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