超级台阶
来源:互联网 发布:淘宝限时抢购怎么弄 编辑:程序博客网 时间:2024/05/01 11:31
/*Problem Description有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法? Input输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。 Output对于每个测试实例,请输出不同走法的数量 Sample Input223 Sample Output12*/#include <stdio.h>/*int fun(int i){if(i==1||i==2){return i-1;}elsereturn fun(i-1)+fun(i-2);}用递归时会超时*///该题注意,题目中已经告诉说在第一阶梯上 int main(){int n,m;int sum[45];scanf("%d",&n);while(n--){scanf("%d",&m);sum[1]=0;sum[2]=1;sum[3]=2;for(int i=4;i<=m;i++){sum[i]=sum[i-1]+sum[i-2]; } printf("%d\n",sum[m]);}return 0;}/*1.有8阶台阶,小明从下向上走,若每次只能跨过1级或2级,他走上去共有多少种方法?解:因为1阶台阶,1种走法;2阶台阶,有1+1、2,共2种走法;3阶台阶,有1+1+1、1+2、2+1,共3种走法,即1+2=3;4阶台阶,有1+1+1+1、1+1+2、1+2+1、2+1+1、2+2,共5种走法,即2+3=5;5阶台阶,有1+1+1+1+1、1+1+1+2、1+1+2+1、1+2+1+1、2+1+1+1、1+2+2、2+1+2、2+2+1,共8种走法3+5=8;……所以6阶台阶,有5+8=13种;7阶台阶,有8+13=21种;8阶台阶,有13+21=34种;结论:有n阶台阶,从下向上走,若每次只能跨过1级或2级,走法的规律为1,2,3,5,8,13,21……,即a1=1,a2=2,an=an-1+an-22.有10阶台阶,小明从下向上走,若每次只能跨过1级或2级或3级,他走上去共有多少种方法?解:因为1阶台阶,1种走法;2阶台阶,有1+1、2,共2种走法;3阶台阶,有1+1+1、1+2、2+1、3,共4种走法;4阶台阶,有1+1+1+1、1+1+2、1+2+1、2+1+1、2+2、1+3、3+1,共7种走法,即1+2+4=7;5阶台阶,有1+1+1+1+1、1+1+1+2、1+1+2+1、1+2+1+1、2+1+1+1、1+2+2、2+1+2、2+2+1、1+1+3、1+3+1、3+1+1、2+3、3+2,共13种走法2+4+7=13;……所以6阶台阶,有4+7+13=24种;7阶台阶,有7+13+24=44种;8阶台阶,有13+24+44=81种;9阶台阶,有24+44+81=149种;10阶台阶,有44+81+149=274种.结论:有n阶台阶,从下向上走,若每次只能跨过1级或2级或3级,走法的规律为1,2,4,7,13,24,44,……,即a1=1,a2=2,a3=4,an=an-1+an-2+a*/
0 0
- 超级台阶
- 超级台阶
- 超级台阶
- 超级台阶
- 超级台阶
- 超级台阶
- 超级台阶
- 超级台阶
- 超级台阶
- 超级台阶
- 超级台阶
- 超级台阶
- 超级台阶
- 超级台阶
- 超级台阶
- 超级台阶
- 超级台阶
- 超级台阶
- 设计模式-适配器模式
- git常用配置
- iOS UI初级-标签控制器
- 浅谈进程地址空间与虚拟存储空间
- Outlook HTML渲染引擎
- 超级台阶
- Service和Thread的关系
- 没有 /lib/modules/*/build 这个目录
- C++学习之字符串的输入问题
- 用.NET开发通用Windows App
- 《C算法》读书笔记(6):词法分析
- 一个小时内学习SQLite数据库
- 关于三原色以及三基色,白色,黑色的合成原理!
- Linux Kernel boot sequence