要解決C語言中的斐波那契數列求和問題,可以使用循環或遞歸兩種方法。
使用循環: 首先定義兩個變量來保存斐波那契數列的前兩個數,初始化為0和1。 然后使用循環,從第3個數開始,每次迭代都將前兩個數相加,并將結果賦給第三個數。 循環繼續進行,每次都將新計算出的數加到一個累加器變量中。 最后輸出累加器的值,即為斐波那契數列的和。
下面是一個使用循環求解斐波那契數列和的示例代碼:
#include <stdio.h>
int main() {
int n, i;
long long sum = 0, a = 0, b = 1, c;
printf("Enter the number of terms: ");
scanf("%d", &n);
for (i = 3; i <= n + 2; i++) {
c = a + b;
sum += c;
a = b;
b = c;
}
printf("Sum of Fibonacci series up to %d terms: %lld\n", n, sum);
return 0;
}
使用遞歸: 遞歸是一種通過調用自身的方法來解決問題的方法。在這里,可以編寫一個遞歸函數,它接受一個整數參數n,并返回斐波那契數列的和。 遞歸函數的基本情況是當n等于0或1時,返回n。否則,遞歸調用函數來計算前兩個數之和,并將其與n相加,然后返回結果。
下面是一個使用遞歸求解斐波那契數列和的示例代碼:
#include <stdio.h>
long long fibonacciSum(int n) {
if (n == 0 || n == 1) {
return n;
}
return fibonacciSum(n - 1) + fibonacciSum(n - 2);
}
int main() {
int n;
printf("Enter the number of terms: ");
scanf("%d", &n);
long long sum = fibonacciSum(n);
printf("Sum of Fibonacci series up to %d terms: %lld\n", n, sum);
return 0;
}
無論是使用循環還是遞歸,都可以解決C語言中斐波那契數列求和問題。這兩種方法各有優劣,循環方法通常更高效,而遞歸方法更容易實現和理解。選擇哪種方法取決于具體的需求和情況。