C语言中用数组求斐波那契数列的第20项的程序

如题所述

#include <stdio.h>

int main(int argc, const char * argv[]) {
    int num_A = 1,num_B = 1;
    int newFibonacciNum;
    
    int Fibonacci_index = 20;
    
    for (int i = 0; i<=Fibonacci_index; i++) {
        newFibonacciNum = num_A + num_B;
        
        num_A = num_B;
        num_B = newFibonacciNum;
        
        printf("序号:%d 数值:%d\n",i+3,newFibonacciNum);
        
        //因为A和B是第一第二个,所以是从第三个开始输出的
        if (i+3 == Fibonacci_index) {
            
            printf("结果是:%d\n",newFibonacciNum);
            return newFibonacciNum;
        }
    }
    return 0;
}

有问题可以继续问

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-25
#include <stdio.h> 
int main() 

    int i,fib[20]={0,1}; 
    
    for (i=2; i<20; i++)
       { 
           fib[i]=fib[i-2]+fib[i-1]; 
       } 
    printf("%d ",fib[19]);
 
    return 0;
}


第2个回答  推荐于2018-03-03
#include<stdio.h>
main()
{
int f1=1,f2=1;
int i,n;
long double f;
scanf("%d",&n);
printf("%6d,%6d",f1,f2);
for(i=3;i<=n;i++)
{
f=f1+f2;
printf("%21lf",f);
if(i%5==0)
printf("\n");
f1=f2;
f2=f;
}
}本回答被网友采纳
第3个回答  2018-03-02
int F(int n)
{
if (n == 1 || n == 2) return 1;
else return F(n-1)+F(n-2);
}
int main()
{
printf("%d",F(20));
return 0;
}
第4个回答  2022-04-04
如下即可:
#include <stdio.h>
void main()
{
int i, a[20];
a[0] = 1; a[1] = 1;
for(i = 2; i < 20; i++)
a[i] = a[i - 1] + a[i - 2];

i = 0;
while( i < 20) {
printf("%d\t", a[i++]);
if(i % 5 == 0) printf("\n");
}
}
相似回答