求数列第 n 项.....................?

输入[0,90]区间内的整数 n,输出 Fibonacci 数列第 n 项的值 f(n):

f(0) = 0,f(1) = 1;当 n>1 时,f(n) = f(n-2) + f(n-1)

可以定义一个函数来求第n项斐波那契数列的值,在函数中使用循环依次计算每一项斐波那契的值,直到计算到要求的第n项,每一项的的值用前两项的值的和来计算,根据题目意思,第0项为0,第1项为1,第2项也为1,如此可以循环计算到要求的那一项。

代码如下:

参考链接:


#include  <stdio.h>

void fib(int n){
    
    int i;
    long long zero = 0;
    long long  first=1; // Fibonacci数列的第1项 
    long long   second=1; // Fibonacci数列的第2项 
    long long   num;
    
    if (n==0){
        printf("%lld",zero);    
    }else if(n==1){ // 如果只需要输出Fibonacci数列的第1项 
        printf("%lld",first);
    }else if(n==2){ // 如果只需要输出Fibonacci数列的前2项 
        printf("%lld",second);    
    }else{  // 如果需要输出Fibonacci数列的项数大于等于3项 
        
    
    
        for(i=3;i<=n;i++){
            num= first+second;  // 当前项为前两项的和 
            if(i==n){
            // https://blog.csdn.net/pyh2358/article/details/105977440    
                printf("%lld",num);
            }
                
            
            first = second;  // 把当前项的前第2项first赋值为first后面的那项second的值 
            second = num;  // 把当前项的前一项赋值为当前项的值,经过这两部的重新赋值以便计算下一项的值 
        } 
    }
}
    
    

int main(void){
    
    int n;
    printf("请输入要输出Fibonacci数列的第几项:");
    scanf("%d",&n) ;
    fib(n);
    
    return 0;
} 

img