斐波那契数列的特点是从第三项开始,每一项都等于前两项之和,即F(n)=F(n - 1)+F(n - 2),其中F(0)=0,F(1)=1。
#include <stdio.h>
// 计算斐波那契数列第n项的非递归函数
unsigned long long fibonacci(int n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
}
unsigned long long a = 0;
unsigned long long b = 1;
unsigned long long result;
for (int i = 2; i <= n; i++) {/ /从n为2开始,每一项都为前两项的和,当n为2时,数列为0,1,1
result = a + b;
a = b;/ /下一次循环,a的值发生改变,向后推一个数
b = result;//同理,下一次循环,b的值向后推一个数
}
return result;
}
int main() {
int n;
printf("请输入要计算的斐波那契数列的项数: ");
scanf("%d", &n);
if (n < 0) {
printf("输入的项数不能为负数。\n");
} else {
unsigned long long result = fibonacci(n);
printf("斐波那契数列第 %d 项的值为: %llu\n", n, result);
}
return 0;
}