栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言实现巧妙推算走楼梯

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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("%dn", 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;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/889977.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号