蓝桥杯第四届 第39级台阶

来源:互联网 发布:unity3d 离散事件仿真 编辑:程序博客网 时间:2024/05/23 17:22
/*题目标题: 第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;} */

0 0
原创粉丝点击