斐波那契数列是一个著名的递归序列,通常定义为:从第三项开始,每一项都等于前两项之和。在C语言中,我们可以使用循环结构来计算指定位置的斐波那契数`:
1. 变量实现
#include <stdio.h> int main() { // 定义要计算的斐波那契数列项的位置 int targetPosition = 20; // 初始化斐波那契数列的前两项 int previousFibonacci = 0; int currentFibonacci = 1; int nextFibonacci; // 存储下一项的临时变量 // 循环直到达到目标位置(包含目标位置) for (int i = 2; i <= targetPosition; ++i) { // 计算下一项 nextFibonacci = previousFibonacci + currentFibonacci; // 更新前两项的值 previousFibonacci = currentFibonacci; currentFibonacci = nextFibonacci; } // 输出第targetPosition项的斐波那契数 printf("%d\n", currentFibonacci); return 0; // 修改返回值为0表示程序正常结束 }
我们将目标位置变量命名为 targetPosition
,并初始化斐波那契数列的前两项为0和1。通过 nextFibonacci
变量存储即将更新的当前项。
2. 数组实现
#include <stdio.h> int main() { int sequence_length = 10; int fibonacci_sequence[sequence_length]; fibonacci_sequence[0] = fibonacci_sequence[1] = 1; for (int current_index = 2; current_index < sequence_length; ++current_index) { fibonacci_sequence[current_index] = fibonacci_sequence[current_index - 1] + fibonacci_sequence[current_index - 2]; } printf("%d", fibonacci_sequence[sequence_length - 1]); // 程序正常结束,返回0 return 0; }
3. 递归实现
#include <stdio.h> int fib(int n){ if(n==1||n==2)return 1; return fib(n-1)+ fib(n-2); } int main() { printf("%d", fib(10)); // 程序正常结束,返回0 return 0; }