题目描述
输入一个数值n,要求输出前n个斐波那契数,每五个一行。
示例
思路
-
斐波那契数,第一个数为1,第二个数为1,从第三个数开始,每个数的值为前两个数相加。例如:1 1 2 3 5 8 13 21 34 55...
-
用数组的形式存放并计算斐波那契数。
-
要注意最后五个为一行输出的话,数组下标要从1开始。因为判断i%5==0时,i=0的话0对5取模也等于0,因此a[0]会单独换行,格式就错了。
具体实现
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int a[n];
a[1]=1;
a[2]=1;
for(int i=3; i<=n; i++){ //计算斐波那契数
a[i]=a[i-1]+a[i-2];
}
for(int i=1; i<=n; i++){
if(i%5==0) {
printf("%d\n",a[i]);
}
else printf("%d ",a[i]);
}
return 0;
}