楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,用C++或lua语言编一程序计算共有多少种不同的走法.分别用递归、迭代二种方式, 写出详细的代码
人气:461 ℃ 时间:2020-04-13 07:06:29
解答
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;
}
推荐
- 楼梯有20阶台阶,上楼可以一步上1阶,也可以一步上2阶,计算共有多少种不同的走法
- 楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶
- ①楼梯有10阶台阶,上楼可以一步上1阶,也可以一步上2阶,计算共有多少种不同的走法?
- 一段楼梯有9个台阶,可以一步上一阶,也可以一步上两?阶,问:这样有多少种不同的上楼方法?
- 有一楼梯有14级台阶我最多一次可跨3阶每次上楼梯可跨1.2.3阶有几种不同的上楼梯的走法?
- 泰勒级数的展开公式.比如,1/1+x=∑x^n,
- 谁能帮我写篇英语小段文?
- What a funny time to eat breakfast!拜托详尽讲解其中的语法知识点.
猜你喜欢
- 波尔多液是CuSO4溶液与Ca(OH)2溶液混合而成的悬浊液,在配制波尔多液时为什么不能用铁制容器.
- 英语翻译
- 甲,乙两人分别从甲,乙两地同时相向出发,在甲超过中点50米的处甲,乙两人第一次相遇,甲,乙到达乙,甲两地后立即反身往回走,结果甲,乙两人在距甲地100米处第2次相遇,求甲,乙两地的路程.
- show sb sth =show sth to sb ,send sb sth =send sth to sb 有人知道与这种用法一样的短语吗?9个左右
- 考试后的试卷阅读,求个答案来对
- 缅怀革命先烈的句子
- 英语翻译 1.我不能解决这个问题 2.我把篮子里装满了花 3.他的内心充满了幸福 4.他的一个朋友愿意帮他度过难关 5.有聋又瞎是大部分人所无法想象的事情
- Who is Liu Xiang He is a player.句型对吗