第一种用循环写
#include<stdio.h>
int main(){
int a=1,b=1,n,c=1;
scanf("%d",&n);
if(n<1){printf("Invalid.");}
while(c<=n){
printf("%5d",a);
b=a+b;
a=b-a;
if(c%5==0||c==n)printf("\n");
c++; }
return 0;
}
第二种用数组的方法,就是先算出来,然后在决定从数组中选几个
#include<stdio.h>
int main()
{
int i,n;
scanf("%d",&n);
int f[100]={1,1}; //定义数组前两个数字
if(n<1){
printf("Invalid.");
}
else{
for(i=2;i<100;i++){ //你想打印几个数字取决于你数组里面运算了几个数
f[i]=f[i-2]+f[i-1];
}
for(i=0;i<n;i++){
printf("%11d",f[i]);
if((i+1)%5==0||n==i+1){printf("\n");}
}
}
return 0;
}
第三种用函数的递归写,函数的递归运行效率底,不如第二种简单易懂
#include<iostream>
using namespace std;
int tran(int c)
{
return(c==1||c==2)?1:tran(c-1)+tran(c-2);
}
int main(){
int n,i;
cin>>n;
if(n<1){
cout<<"Invalid.";
}
else{
for(i=1;i<=n;i++){
printf("%5d",tran(i));
if(i%5==0||n==i){printf("\n");}
}
}
}