关于#c语言#的问题:怎么编写Fibonacci数列

怎么编写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;
}