C語(yǔ)言怎么求斐波那契數(shù)列前n項(xiàng)值

小億
193
2023-11-27 19:10:42

C語(yǔ)言中,可以使用循環(huán)或遞歸的方式來(lái)求斐波那契數(shù)列的前n項(xiàng)值。

  1. 使用循環(huán)的方式:
#include <stdio.h>

void fibonacci(int n) {
    int i, t1 = 0, t2 = 1, nextTerm;
    
    printf("斐波那契數(shù)列的前 %d 項(xiàng)為:\n", n);
    
    for (i = 1; i <= n; i++) {
        printf("%d, ", t1);
        nextTerm = t1 + t2;
        t1 = t2;
        t2 = nextTerm;
    }
}

int main() {
    int n;
    
    printf("請(qǐng)輸入斐波那契數(shù)列的項(xiàng)數(shù):");
    scanf("%d", &n);
    
    fibonacci(n);
    
    return 0;
}
  1. 使用遞歸的方式:
#include <stdio.h>

int fibonacci(int n) {
    if (n == 0 || n == 1) {
        return n;
    }
    
    return fibonacci(n - 1) + fibonacci(n - 2);
}

int main() {
    int n, i;
    
    printf("請(qǐng)輸入斐波那契數(shù)列的項(xiàng)數(shù):");
    scanf("%d", &n);
    
    printf("斐波那契數(shù)列的前 %d 項(xiàng)為:\n", n);
    
    for (i = 0; i < n; i++) {
        printf("%d, ", fibonacci(i));
    }
    
    return 0;
}

以上兩種方法都可以求得斐波那契數(shù)列的前n項(xiàng)值,使用循環(huán)的方式效率通常較高,但遞歸的方式更為簡(jiǎn)潔。

0