C语言 台阶问题

[复制链接]
查看11 | 回复2 | 2011-5-5 11:33:54 | 显示全部楼层 |阅读模式
楼上走到楼下共有h个台阶,每一步有3种走法:走1个台阶;走2个台阶;走3个台阶。问可走多少种方案?
样例输入:10
样例输出:230
我写的是:
if(n==1)
return1;
elseif(n==2)
return2;
elseif(n==3)
return4;
else
returnf(n-1)f(n-2)f(n-3);

但是我用了递归,感觉都没有错,输出是274
到底是怎么回事?
回复

使用道具 举报

千问 | 2011-5-5 11:33:54 | 显示全部楼层
输入10可以输出吗,我的堆栈报错,直接溢出了。
还有第三个判断条件,那个三步的时候,你能有四种走法,答案应该是230吧,改过来吧。
不知道楼上的怎么会认为没错,不过得谢谢楼主哇,以前都是用非递归写的,这次受教了!!!









<h4class=\"ask\">追问


三步的时候不是一个一次三步的先两步后一步先一步后两部还有走三次一次一步
我的没有报错不知道怎么回事……
回复

使用道具 举报

千问 | 2011-5-5 11:33:54 | 显示全部楼层
中间两个算一样的。。。。样例输出不是230吗,题目所表达的就是这个意思!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行