C语言项目爬楼梯的两种实现方法参考分享!

【项目-爬楼梯】

楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,编一程序计算共有多少种不同的走法?

【参考解答(递归法)】

基础:楼梯有一个台阶,只有一种走法(一步登上去);两个台阶,有2种走法(一步上去,或分两次上去);

递推:有n个台阶时,设有count(n)种走法,最后一步走1个台阶,有count(n-1)种走法;最后一步走2个台阶,有count(n-2)种走法。于是count(n)=count(n-1)+count(n-2)。

可见,此问题的数学模型竟然是斐波那契数。

  #include<stdio.h>  int main()  {   unsigned long count(int n);   int n;   unsigned long m;   printf("请输入楼梯的阶数:");   scanf("%d",&n);   m=count(n);   printf("有%lu种爬楼梯的方法n",m);   return 0;  }  unsigned long count (int n)  {   unsigned long f;   if(n==1)    f=1;   else if(n==2)    f=2;   else    f=count(n-1)+count(n-2);   return(f);  }

递归思路清晰,但却“成本”高。另一个方法,在完成问题建模之后,采用了一种很巧妙的“非常规”的做法,将运算量减少了一半。

  //计163-1姜淇瀚  #include &lt;stdio.h&gt;  #include &lt;stdlib.h&gt;  int main()  {   int fib(int a,int b,int n);   int n;   scanf(&quot;%d&quot;,&amp;n);   printf(&quot;%d&quot;,fib(0,1,n));   return 0;  }  int fib(int a,int b,int n)  {   if(n==3)   {    return a+b;   }    return fib(b,a+b,n-1);  }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对<计算机技术网(www.ctvol.com)!!>的支持。如果你想了解更多相关内容请查看下面相关链接

—-想了解C语言项目爬楼梯的两种实现方法参考分享!全部内容且更多的C语言教程关注<计算机技术网(www.ctvol.com)!!>

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/482802.html

(0)
上一篇 2020年11月9日
下一篇 2020年11月9日

精彩推荐