- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
楼梯有n(100 > n > 0)阶台阶,上楼时可以一步上1阶,也可以一步上2阶,也可以一步上3阶,编程计算共有多少种不同的走法。
- 输入
- 输入的每一行包括一组测试数据,即为台阶数n。最后一行为0,表示测试结束。
- 输出
- 每一行输出对应一行输入的结果,即为走法的数目。
- 样例输入
-
1 2 3 4 0
- 样例输出
-
1 2 4 7
解答:简单递推f(n)=f(n-1)+f(n-2)+f(n-3)(n>3)
AC代码:#include <iostream> using namespace std; int main() { int a[3]={1,2,4}; int n; while(cin>>n,n) { if(n<=3) cout<<a[n-1]<<endl; else { long sum,sum1=4,sum2=2,sum3=1; for(int i=3;i<n;i++) { sum=sum1+sum2+sum3; sum3=sum2; sum2=sum1; sum1=sum; } cout<<sum<<endl; } } return 0; }
标签:台阶,走法,int,样例,一行,3525,输入 来源: https://www.cnblogs.com/guoshuai1995/p/10397216.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。