怎么编写Fibonacci数列:1,1,2,3,5,8…的前40个数(要求输出结果4个数一行)。啥思路呀
先一个个算出来,存储在数组中,然后再遍历数组,一次遍历四个,输出
#include<stdio.h>
int main()
{
int arr[40];
arr[0] = 1; arr[1] = 1;
for (int i = 2; i < 40; i++)
{
arr[i] = arr[i - 1] + arr[i - 2];
}
for (int i = 0; i < 10; i++)
{
printf("%d\t%d\t%d\t%d\n",arr[4*i],arr[4*i+1],arr[4*i+2],arr[4*i+3]);
}
return 0;
}
如果对你有帮助,望采纳
给你一个算法
#include <stdio.h>
int Fibonacci(int n)
{
if( n == 1 || n == 2) // 递归结束的条件,求前两项
return 1;
else
return Fibonacci(n-1)+Fibonacci(n-2); // 如果是求其它项,先要求出它前面两项,然后做和。
}
int main()
{
int n;
printf("please input n: ");
scanf("%d",&n);
printf("Result: %d\n",Fibonacci(n));
return 0;
}
c++
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
long f1,f2;
int i;
f1=f2=1;
for(i=1;i<=20;i++)
{
cout<<setw(12)<<f1<<setw(12)<<f2;//设备输出字段宽度为12,每次输出两个数
if(i%2==0) cout<<endl; //每输出完4个数后换行,使每行输出4个数
f1=f1+f2; //左边的f1代表第3个数,是第1,2两个数之和
f2=f2+f1; //左边的f2代表第4个数,是第2,3两个数之和
}
return 0;
}