代码:
利用循环:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int Fibonacci(int n){
int num;
int i = 1;
int j = 1;
int count = 3;
if (n == 1 || n == 2){
return 1;
}
for (count; count <= n; count++){
num = i + j;
i = j;
j = num;
}
return num;
}
int main(){
int num;
int n;
printf("请输入项数:\n");
scanf("%d", &n);
num = Fibonacci(n);
printf("第%d个斐波那契数为:%d\n", n,num);
system("pause");
return 0;
}
利用递归:(只修改函数部分)
int Fibonacci(int n){
int num;
if (n == 1 || n == 2){
return 1;
}
num = Fibonacci(n-1) + Fibonacci(n-2);
return num;
}
运行结果:
本题推荐使用第一种方法,因为利用递归实现会重复计算多个值,增加计算量,降低运行效率。