代码运行39台阶问题

查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧!

    <1>题问:小明要上楼,楼一共39台阶,他先迈左脚,最后一步迈右脚,左右脚交替上台阶,每一步可能上1个或者2个台阶,求他上完39个台阶一共有多少种走法?

    <2>代码:

    #include<iostream>
using namespace std;
int count = 0;
int choice[] =  {1,2};
int c[100];
void dfs(int taijieshu,int step)
{
 if(taijieshu <= 0)
 {
 /* if(taijieshu==0 && step%2==0)   //+1 -1不一样嘛?
  {
            for(int i = 0;i < step;i++)   //打印详细的上楼序顺
   {
    cout<<c[i];
   }
   cout<<endl;*/
   count++;
  }
  return;
 }
 for(int i = 0;i <= 1;i++)
 {
       taijieshu -= choice[i];
    c[step] = choice[i];
    dfs(taijieshu,step+1);
    c[step] = 0;
    taijieshu += choice[i];
 }
}

    每日一道理
春蚕死去了,但留下了华贵丝绸;蝴蝶死去了,但留下了漂亮的衣裳;画眉飞去了,但留下了美妙的歌声;花朵凋谢了,但留下了缕缕幽香;蜡烛燃尽了,但留下一片光明;雷雨过去了,但留下了七彩霓虹。

    void main()
{
 dfs(39,0);
 cout<<count<<endl;
}

    <3>运行结果截图:

    代码和运行

文章结束给大家分享下程序员的一些笑话语录: 姿势要丰富,经常上百度!

原文地址:https://www.cnblogs.com/xinyuyuanm/p/3065687.html