赞
踩
一、递归:
代码实现:
- #include <stdio.h>
-
- int Fibon(int n){
- if(n == 1 or n ==2)
- return 1;
- else
- return Fibon(n-1) + Fibon(n-2);
- }
-
- int main(){
- int n,m;
-
- printf("输入所要的第 n 项的值:");
-
- scanf("%d",&n);
-
- m = Fibon(n);
-
- printf("\n");
- printf("%d",m);
-
- return 0;
- }
手推递归过程(便于理解):
二、循环(非递归):
用循环和关键点就是要用一个中间变量来保存其他值,这个和冒泡排序的交换位置有一点相似
代码实现:
- #include <stdio.h>
-
- int main(){
- int p = 1,q = 1; //p、q 用来保存前两个已知变量
- int a,n; //a 作为中间变量 ;n 作为项数
-
- printf("请输入所要的第几项的值:");
-
- scanf("%d",&n);
-
- for(int i = 0;i < n;i++)
- if(n >= 2){
- a = p + q;
- p = q;
- q = a;
- }else{
- printf("值为1");
- }
-
- printf("%d",a);
- /*注意:由于前两项已知,所以在求第 n 项时要减去 2
- 例如要求第 5 项的值,那 n = 5-2 = 3(输入 3 才正确) */
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。