查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧!
<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>运行结果截图:
文章结束给大家分享下程序员的一些笑话语录: 姿势要丰富,经常上百度!