C语言实现巧妙推算走楼梯
有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?
实现思想如下:
M=2时,走法X1=1;
M=3时,走法X2=2;
M=4时,走法X3=3;
M=5时,走法X4=5;
依次类推
M=n时,走法Xn-1=Xn-2+Xn-3,是前两项的和
所以可以用递归的思想来实现。
具体代码如下:
#include<stdio.h>
int test1(int m) //test1()递归函数实现求总共有几种方法
{
int x1 = 0, x2 = 0;
int S;
if (m == 2)
x1 = 1;
else if (m == 3)
x2 = 2;
else if (m > 3) //m>3时可以用递归的方法来实现
{
x1 = x1 + test1(m - 2);
x2 = x2 + test1(m - 1);
}
S = x1 + x2;
return S;
}
void test(int m[], int n) //test()函数输出有几种做法
{
int i = 0;
int sum = 0;
for (i = 0; i < n; i++)
{
sum = test1(m[i]); //调用test1()函数
printf("%d\n", sum);
}
}
int main()
{
int n, i, m[100] = { 0 };
scanf("%d", &n); //输入n要处理的总数
for (i = 0; i < n; i++) //输入n组数表示阶梯数
scanf("%d", &m[i]);
test(m, n); //调用test()函数
return 0;
}
C语言实现巧妙推算走楼梯相关推荐
- 1195 巧妙推算走楼梯(宁波大学oj)
题目描述 有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法? 输入要求 输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1 ...
- 1195 巧妙推算走楼梯
题目描述 有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法? 输入要求 输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1 ...
- 动态规划走楼梯_动态规划问题为什么要画表格?
❝ 本文是我的 91 算法第一期的部分讲义内容.91 算法第一期已经接近尾声,二期的具体时间关注我的公众号即可,一旦开放,会第一时间在公众号<力扣加加>通知大家. ❞ 动态规划可以理解为是 ...
- 老鼠走迷宫php算法,C语言经典算法 - 老鼠走迷官(一)
C语言经典算法 - 老鼠走迷官(一) 说明老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表 示老鼠的行走路径,试以程式求出由入口至出口的路径. 解法老鼠的走法有上.左.下 ...
- c语言大作业走迷宫,基于C语言实现简单的走迷宫游戏
本文实例讲述了C语言实现简单的走迷宫游戏的方法,代码完整,便于读者理解. 学数据结构时用"栈"写的一个走迷宫程序,实际上用到双向队列,方便在运行完毕后输出经过的点. #includ ...
- 递归法:走楼梯; 旋转数组的最小数字(递归法和改进二分法)
题目:走楼梯 小明在走楼梯,楼梯有n阶台阶,一次可以上1阶,2阶或者3阶,实现一个方法,计算小明有多少种走楼梯的方式 package louti; import java.util.Scanner;p ...
- 棋盘算法c语言程序,C语言经典算法 - 骑士走棋盘
搜索热词 @H_301_0@下面是编程之家 jb51.cc 通过网络收集整理的代码片段.@H_301_0@编程之家小编现在分享给大家,也给大家做个参考. 说明骑士旅游(Knight tour)在十八世 ...
- StairDesigner.v6.04多语言含中文版 1CD(楼梯设计系统)\
FLOMERICS.FLOTHERM.V7.1 电子电器设备空气流和热传导分析的专用CFD软件\ haoc网源码\ Petrel_2008.1.1\ PTC Intralink v3.4 M011-I ...
- 【动态规划】走楼梯问题
走楼梯问题 问题:有一座高度是10级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶.一共有多少种走法.(和铺瓷砖问题是一样的) 暴力枚举很简单,先选择可能性,再根据排列组合公式,记录. 但是 ...
最新文章
- 理解特征统计偏差、方差、平均值、中位数、百分数等等
- JavaSE简单实现多线程聊天
- 向右滑动返回Activity
- 若依前后端分离如何修改title标题呢?
- matlab在伪随机码,MATLAB在伪随机码的生成及仿真中的应用
- C语言计算表达式咋写,C语言如何计算表达式(x++)+(++x)+(x++)
- tree 先序遍历 叶子结点_编程:按先序序列输出二叉树的叶子结点
- 计算机室 多媒体教室制度,多媒体教室计算机室规章制度.doc
- 基于PHP、Mysql的电影院售票系统
- LTE系统各种指标概念(EVM,ACLR)
- spotify电脑下载歌曲_我来简单说一下Apple Music和Spotify的下载方法
- 信创操作系统--麒麟Kylin桌面版 (项目八 多媒体软件:图像查看、图像处理、音频播放、录音机)
- 财务人的编程自学之路
- 域远程管理计算机,远程控制局域网电脑 图解局域网怎么远程控制
- 哈夫曼树的构造与哈夫曼编码
- HMS Core AR Engine 2D图片/3D物体跟踪技术 助力打造更智能AR交互体验
- 25岁裸辞转行5G网络优化工程师:比盲目赶路更为重要的,是知道方向—分享优橙小故事
- mac+unity3d准备工作——磨刀
- APP小程序网站搭建需要什么样的服务器
- VR概述及初识Unity 3D
热门文章
- 阿里云服务器ECS有哪些优势?与普通IDC对比有哪些优势?
- 人工智能好找工作吗?学AI可以做什么?
- 基于javaweb+springboot的人脸识别登录系统(java+springboot+maven+mysql)
- 汇编语言编写的一个“接球游戏”
- fanuc机器人试题_FANUC机器人建立part carrier和跟踪参数的方法
- D3选择v4(一、selection)中文
- java网络资源直接上传至samba服务器
- 小红书怎么推广,如何借助小红书平台推广产品
- 成品app直播源码,全屏并且去掉底部虚拟导航栏
- B站韩顺平java学习笔记(二十五)-- 正则表达式章节