楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,用C++或lua语言编一程序计算共有多少种不同的走法

楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,用C++或lua语言编一程序计算共有多少种不同的走法。分别用递归、迭代二种方式,写出详细的代码... 楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,用C++或lua语言编一程序计算共有多少种不同的走法。分别用递归、迭代二种方式, 写出详细的代码 展开
 我来答
qiu__peng
2014-06-03 · TA获得超过293个赞
知道小有建树答主
回答量:95
采纳率:0%
帮助的人:119万
展开全部
    int recursive(int n)
{  
    if (n <= 2)
        return n;
    return recursive(n - 1) + 2 * recursive(n - 2);
}


int iterative(int n)
{  
    int f1 = 1, f2 = 2, f;  
    for (int i = 3; i <= n; ++i) 
    {  
        f = f2 + 2 * f1;  
        f1 = f2; 
        f2 = f; 
    }  
    return f;   
}
追问
2 * recursive(n - 2);
这里为什么要乘2?好像不用吧,直接return f(n-1)+f(n-2)就行了吧
追答
是不用乘2,你理解是对的。我想偏了。

更改为:
int recursive(int n)
{
if (n <= 2)
return n;
return recursive(n - 1) + recursive(n - 2);
}

int iterative(int n)
{
int f1 = 1, f2 = 2, f;
for (int i = 3; i <= n; ++i)
{
f = f2 + f1;
f1 = f2;
f2 = f;
}
return f;
}
福泽佑之IN
2014-06-03 · TA获得超过2474个赞
知道小有建树答主
回答量:727
采纳率:0%
帮助的人:695万
展开全部
#include<stdio.h>
#define maxn 50
int arr[maxn];
int main(void)
{
    arr[0] = arr[1] = 1;
    int i;
    for(i = 2; i < maxn; i++)
        arr[i] = arr[i - 1] + arr[i - 2];
    return 0;
}
追问
这是迭代的方法?还有递归的方法是该这样吗:
int f(int n)
{
if (n <= 0)

return 0;

else if (n == 1)

return 1;

else if (n == 2)

return 2;

else

return f(n-1)+f(n-2);

}
追答
是。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
528288
2019-07-16 · 超过11用户采纳过TA的回答
知道答主
回答量:58
采纳率:75%
帮助的人:11.6万
展开全部
int get(int a)
{
if (a <=2)
return a;
else
return get(a - 1) + get(a - 2);
}
int main()
{
int a;
while (EOF)
{
scanf_s("%d", &a,1);
a = get(a);
printf("%d\n", a);
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
94年的小学生0
2018-05-13
知道答主
回答量:4
采纳率:0%
帮助的人:3458
展开全部
C语言版本:
#include<stdio.h>
int jiecheng(int x,int ci)
{
int i=0,p=1;
while(i++<ci)
p*=x--;
return p;
}
int main()
{
int i,n,sum=0;
printf("请输入台阶数量n:");
scanf("%d",&n);
for(i=1;i<=n/2;i++)
sum+=jiecheng(n-i,i)/jiecheng(i,i);
printf("总共有%d种方案\n",sum+1);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式