#include<stdio.h>
#include<string.h>
//斐波那契数列是一组第一位和第二位为1,从第三位开始,后一位是前两位和的一组递增数列,
//像这样的:1、1、2、3、5、8、13、21、34、55......
//这个例子说明递归并不是适合任何情况,一旦用了递归以后,效率很低有明显的缺陷,就得考虑用非递归的方法重新计算
//1.采用递归方式 计算繁琐,从后往前再从前往后
//int fib(int n){
// if(n<=2){
// return 1;
// }
// else{
// return fib(n-1)+fib(n-2);
// }
//}
//2.采用非递归方式 直接从前往后,很快的提高效率了
int fib(int n){
int a = 1;
int b = 1;
int c = 1;
while(n>2){
c = a + b;
a = b;
b = c;
n--;
}
}
int main(){
int n = 0;
scanf("%d",&n);
int ret = fib(n);
printf(ret);
return 0;
}
求解斐波那契数列
最新推荐文章于 2024-08-24 21:01:27 发布