问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求教:一个算法。N级台阶,可以一步跨一阶或两阶,问共有多少种走法?

发布网友 发布时间:2022-04-18 14:10

我来回答

3个回答

懂视网 时间:2022-04-18 18:31

这篇文章主要介绍了Python解决N阶台阶走法问题的方法,简单描述了走台阶问题,并结合实例形式分析了Python使用递归与递推算法解决走台阶问题的相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python解决N阶台阶走法问题的方法。分享给大家供大家参考,具体如下:

题目:一栋楼有N阶楼梯,兔子每次可以跳1、2或3阶,问一共有多少种走法?

Afanty的分析:

遇到这种求规律的问题,自己动动手推推就好,1阶有几种走法?2阶有几种走法?3阶有几种走法?4阶有几种走法?5阶有几种走法?

对吧,规律出来了!

易错点:这不是组合问题,因为第1次走1阶、第2次走2阶不同于 第1次走2阶、第2次走1阶

下面是Python的递归实现代码:


def allMethods(stairs):
 '''''
 :param stairs:the numbers of stair
 :return:
 '''
 if isinstance(stairs,int) and stairs > 0:
 basic_num = {1:1,2:2,3:4}
 if stairs in basic_num.keys():
 return basic_num[stairs]
 else:
 return allMethods(stairs-1) + allMethods(stairs-2) + allMethods(stairs-3)
 else:
 print 'the num of stair is wrong'
 return False


当然也可以用非递归的方法来实现,下面就是基于递推法的代码:


def allMethod(stairs):
 '''''递推实现
 :param stairs: the amount of stair
 :return:
 '''
 if isinstance(stairs,int) and stairs > 0:
 h1,h2,h3,n = 1,2,4,4
 basic_num = {1:1,2:2,3:4}
 if stairs in basic_num.keys():
 return basic_num[stairs]
 else:
 while n <= stairs:
 temp = h1
 h1 = h2
 h2 = h3
 h3 = temp + h1 + h2
 return h3
 else:
 print 'the num of stair is wrong'
 return False


好的,

热心网友 时间:2022-04-18 15:39

你算:走两阶时隔的这一阶,在N阶中隔的这一阶,最少有0种,最多有N/2种,后面自己看着算吧

热心网友 时间:2022-04-18 16:57

#include <stdio.h>
#define max 100
int total = 0;
int out[max];

void print(int step)
{
int i;
printf("%d: ", total+1);
for (i=0; i < step; i ++)
printf("%d->", out[i]);
printf("|\n");
}

void find(int N, int step)
{
if (N == 0)
{
print(step);
total ++;
return;
}
if (N >= 1)
{
out[step]=1;
find(N-1, step+1);
}
if (N >= 2)
{
out[step]=2;
find(N-2, step+1);
}
}

int main()
{
unsigned int N;
scanf("%u", &N);
if (N >= max) return (1);//不超过100级
find(N, 0);
printf("total %d", total);
return 0;
}
迭代法计算,测试正确
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
桃李芬芳的近义词是? 请会答正确。 急... 墨西哥很混乱吗 为什么我的OPPOR9手机连接到任何蓝牙设备放歌曲,都没有办法在蓝牙设备... OPPOA9如何连接酷狗与手机蓝牙? 华为荣耀3X 白色畅玩版的声音调至最大声仍很小声 荣耀3x刷机后卸载了一些系统软件,然后就无法开机,一直停留在开机界面... 平安富赢金生年金保险值得买吗?最全产品测评! 收音机音量旋钮音量最大还是小 德生pl_450收音机音量电位器声音惑大惑小,电位器的型号是什么_百度知 ... 浙江金融学院有什么专业 爱普生l850的废墨垫在什么位置 小明和小白去书店买书小明看中一本字典小白看中一本名著可是他们带的钱都不够。如果小白借钱给小明买字 小晶鱼是整个冻还是开膛冻好 3~6岁的孩子是先识字再阅读,还是直接从阅读中识字呢? ...怎么保存啊?是不是要开膛后取出内脏后冷冻呢? 适合一年级小朋友的科学类纪录片求推荐,一定要中文版的,因为小朋友看不懂字幕。求推荐? 如何让孩子在阅读中识字 《玛莎和熊》有中文版吗?适合小孩子小孩子看吗?俄罗斯的东西会不会有文化差异看不懂 关于秦时明月空山鸟语里的一段纯音乐 鱼是剖膛冻冰箱里还是不剖膛放冰箱里好? 我到底是谁 阅读答案 小时代4最后顾准和nile说的 还有五 是什么意思 鱼死了之后先剖开还是直接放冷冻箱保存 电影《飞屋环游记》的主题、背景、细节、动画设计、音乐等介绍。 哪部美剧动画片适合小朋友看呢,最好有中英文字幕哦 飞儿乐队的广告背景音乐 求冰雪奇缘中文版百度云,小朋友看的,求中文版,谢谢啦 你还知道哪些汉字的故事?写下来,让小朋友们看看吧 您好,我买的是泰康吉祥健康保险计划(分红险)觉得不划来,也想退,想问一下退保经验,谢谢。 我在富德生命人寿买的吉祥安康两全保险,分红型:每年交5890元保10万交15年20年取,请问:到期 佳能MP258废墨垫在哪里啊? 惠普打印机801废墨收集垫在哪儿 新楚留香中 天网的头领到底是谁? 《新楚留香》里面的天网首领到底是谁? 新楚留香中天网的头领到底是谁? 新楚留香里的天网首领到底是谁,薛笑人不是被苏蓉蓉杀了么 超级兵王1307中的神秘人是谁 新楚留香天网的首领到底是谁啊 超级兵王中第一次与叶谦见面的那个神秘男子是谁啊?还有杀死黑鱼大师的那个神秘男子99又是谁啊? 谁知道天网的创始人是谁? 请问步千帆写的超级兵王这本小说中,天网,地缺到底是好的还是坏的?他们的目的究竟是什么?叶谦是他们的 新楚留香 玄冰宫主的情人是谁 2014超级兵王里面无名地缺首领还有无名背后那个面具男是谁 超级兵王中叶正然是不是地缺的首领 小说超级兵王叶谦里面的无名是谁 人生要怎么才能过的洒脱? 女人怎样才能过得潇洒,活出自我? 我活得不像自己,怎样才能让自己过得潇洒一点? 当今社会过得最潇洒的是哪类人? 女人如何过得潇洒