1)非递归
先定义f1,f2给出斐波那契数列前两项的值,再定义f3保存前两项的和,也就是下一项的值,再循环中不断重新变化赋值,最后求出第n项。
#include<stdio.h> #include<stdlib.h> int fabonacci(int n) { int f1 = 1; int f2
= 1; int i = 0, f3 = 1; for (i = 3; i <= n; i++) { f3 = f1 + f2; f1 = f2; f2 =
f3; } return f3; } int main() { int a = 0; printf("请输入a的值:"); scanf("%d", &a);
printf("%d\n", fabonacci(a)); system("pause"); return 0; }
2)递归
找出递归的终止条件是第一项和第二项的值等于1,然后根据公式f(n)=f(n-1)+f(n-2)就可以得出第n项。
#include<stdio.h> #include<stdlib.h> int facibo(int n) { if ((n == 1) || (n ==
2)) { return 1; } else { return facibo(n - 1) + facibo(n - 2); } return 0; } int
main() { int a = 0; printf("请输入a的值:"); scanf("%d", &a); printf("%d\n", facibo(a)
); system("pause"); return 0; }

技术
©2019-2020 Toolsou All rights reserved,
SpringBoot 与JPA结合中 JpaRepository 里自定义查询el-select同时获取label和value值[work] python读取txt文件最后一行415状态码到后台错误Android 11正式版发布!迷宫的最短路径之BFS算法(python实现)(精华)2020年7月12日 webpack 常见插件的使用华为受限老对手受益最大?分蛋糕的人越来越多了!继承jpa Repository 写自定义方法查询Java分布式系统高并发解决方案小结