当前位置:   article > 正文

斐波那契数列C语言实现(多种方式)_c语言实验—菲波那契数(基础数组)

c语言实验—菲波那契数(基础数组)

一、递归:

代码实现:

  1. #include <stdio.h>
  2. int Fibon(int n){
  3. if(n == 1 or n ==2)
  4. return 1;
  5. else
  6. return Fibon(n-1) + Fibon(n-2);
  7. }
  8. int main(){
  9. int n,m;
  10. printf("输入所要的第 n 项的值:");
  11. scanf("%d",&n);
  12. m = Fibon(n);
  13. printf("\n");
  14. printf("%d",m);
  15. return 0;
  16. }

手推递归过程(便于理解):

二、循环(非递归):

用循环和关键点就是要用一个中间变量来保存其他值,这个和冒泡排序的交换位置有一点相似

代码实现:

  1. #include <stdio.h>
  2. int main(){
  3. int p = 1,q = 1; //p、q 用来保存前两个已知变量
  4. int a,n; //a 作为中间变量 ;n 作为项数
  5. printf("请输入所要的第几项的值:");
  6. scanf("%d",&n);
  7. for(int i = 0;i < n;i++)
  8. if(n >= 2){
  9. a = p + q;
  10. p = q;
  11. q = a;
  12. }else{
  13. printf("值为1");
  14. }
  15. printf("%d",a);
  16. /*注意:由于前两项已知,所以在求第 n 项时要减去 2
  17. 例如要求第 5 项的值,那 n = 5-2 = 3(输入 3 才正确) */
  18. return 0;
  19. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/434078
推荐阅读
相关标签
  

闽ICP备14008679号