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,
java四大函数式接口(重点,简单)html写樱花树,写樱花树的作文HashMap详解某东14薪变16薪,是诚意还是套路?浏览器内核(理解)让人意想不到的Python之樱花树(turtle库的华丽样式)os模块的简单使用