#include<stdio.h>
//首先是递归算法
int Fib(int x) {
if (x <= 2) {//当x小于等于2时,返回1
return 1;
}
else {
return Fib(x - 1) + Fib(x - 2);//斐波那契数列就是前两个相加之和
}
}
//非递归算法
int fib(int x) {
int i = 1;
int a = 1;
int b = 1;
while (x > 2) {
i = a + b;//i=结果
b = a;//用b代替a
a = i;//用a代替i 相当于三者依次向前推进
x--;
}
return i;
}
//效率很高
int main() {
int num = 0;
printf("请输入想要查询的第几位数字:");
scanf_s("%d", &num);
printf("%d\n", Fib(num));
printf("%d", fib(num));
return 0;
}
斐波那契数列:递归+非递归