蓝桥杯第四届 第39级台阶
2016-03-14 20:49
232 查看
/* 题目标题: 第39级台阶 小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢? 请你利用计算机的优势,帮助小明寻找答案。 要求提交的是一个整数。 */ #include <stdio.h> int main() //这个方法是不对的 可能我规律没找对 { int a[45]; a[1]=0; a[2]=1; a[3]=2; a[4]=2; a[5]=4; a[6]=6; int i; for(i=7;i<=40;i++) { a[i]=a[i-1]+a[i-2]; } printf("%d\n",a[39]); return 0; } /* #include <stdio.h> int count=0; void fun(int s,int num) { if(s<0)//一定要注意 s可能为负 当s为负时 让它返回 这也是一个递归出口 return ; if(s==0) { if(num%2==0) count++; return ; } fun(s-1,num+1); fun(s-2,num+1); } int main() { fun(39,0); printf("%d\n",count); return 0; } */ /* #include <stdio.h> int fun(int n) { switch(n) { case 1:return 0;break; case 2:return 1;break; case 3:return 2;break; case 4:return 2;break; default:return fun(n-4)+2*fun(n-3)+fun(n-2);//假设最后只迈一次左脚和右脚 //这个时候可以跨上2、3、4层台阶 有这3种可能 其中上2层台阶就1种上法 //上3层台阶有2上法 上4层台阶有1种上法 这就是最后公式的由来 //而在最初上4层台阶时 可以不只是两步 所以有2种上法 } } int main() { int k=fun(39); printf("%d\n",k); return 0; } */
相关文章推荐
- web前端模块化开发
- 公共祖先问题
- 《C陷阱与缺陷》摘要
- 浅析HTML5的10大优势
- c++析构函数为什么要为虚函数
- 将SeqReader打包成可执行的jar包
- 正则表达式验证手机格式
- 内存操作流
- 匿名类型
- Angular之双向数据绑定基础
- 我的前端工作流
- 第三周项目4:穷举法解决组合问题(1)
- 样式布局分享-基于frozen.js的移动OA
- mac下sublime text3中文乱码问题
- Linux 下解决pthread_create undefined reference 方法
- win8/win10 自带Hyper V虚拟机
- gradle的配置
- 浅谈offsetleft与left系列的区别
- 汤姆大叔的博客 JS/jQuery
- Linux 设备驱动开发 —— 设备树在platform设备驱动中的使用