青蛙跳台阶(C语言数学排列组合公式求解法)

这篇具有很好参考价值的文章主要介绍了青蛙跳台阶(C语言数学排列组合公式求解法)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目:从前有一只青蛙他想跳台阶,有n级台阶,青蛙一次可以跳1级台阶,也可以跳2级台阶;问:该青蛙跳到第n级台阶一共有多少种跳法。


当只有跳一级台阶的方法跳时,总共跳n步,共有1次跳法                                

当用了一次跳二级台阶的方法跳时,总共跳n-1步,共有n-1次跳法     

当用了两次跳二级台阶的方法跳时,总共跳n-2步,共有((n-2)*(n-3))/(2*1)种跳法

当用了三次跳二级台阶的方法跳时,总共跳n-3步,共有((n-2)*(n-3)*(n-4))/(3*2*1)种跳法

代码:

#include <stdio.h>
int Fac(int n)//求n的阶乘函数
{
    int ret = 1;
    for (int i = 1; i <= n; i++)
    {
        ret *= i;
    }
    return ret;
}
int C_n_i(int n, int i)//求排列组合函数
{
    if (i == 0||i==n)
    {
        return 1;
    }
    else
    {
        return Fac(n) / (Fac(i) * Fac(n - i));
    }
}
int main()
{
    //青蛙跳台阶问题
    //数学的排序问题
    //不用递归的解法
    int n;
    scanf("%d", &n);
    int sum = 0;
    for (int i = 0; i <= n / 2; i++)
    {
        sum += C_n_i(n-i,i);
    }
    printf("%d", sum);
    return 0;
}

运行结果:

青蛙跳台阶(C语言数学排列组合公式求解法)

青蛙跳台阶(C语言数学排列组合公式求解法)

欢迎提出错误文章来源地址https://www.toymoban.com/news/detail-710843.html

到了这里,关于青蛙跳台阶(C语言数学排列组合公式求解法)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 动态规划--青蛙跳台阶

    斐波那契数列每次学都有不一样的体会,从最开始简单理解就是,一个找规律的游戏,就是更新数值,往后算就行了,但是,后来,用斐波那契数列理解递归算法,是一个很好的例子,由上向下计算,依次回溯,最后,没想到斐波那契数列还能和动态规划联系起来。当然,斐

    2024年02月19日
    浏览(31)
  • 【青蛙跳台阶问题 —— (三种算法)】

    一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 1: 输入:n = 2 输出:2 示例 2: 输入:n = 7 输出:21 示例 3: 输入:n = 0 输出:1 提示:

    2024年02月05日
    浏览(39)
  • 数学-排列组合的理解

    排列是有顺序的排队,从 m 中选择 n 个进行排队,第 1 个有 m-0 种选择,第 2 个有 m-1 种选择,自然的,第 n 个有 m-(n-1) 种选择。因为有顺序,可以看出前面的选择,会后面影响后面的选择,所以将选择每个的可能数相乘。 A m n = ( m − 0 ) ∗ ( m − 1 ) ∗ . . . ∗ ( m − ( n − 1

    2023年04月16日
    浏览(44)
  • 【数据结构】回溯算法公式化解题 leetcode经典题目带刷:全排列、组合、子集

    一、什么是回溯算法 回溯算法(Backtracking Algorithm)是一种解决 组合问题 、 排列问题 、 选择问题 等一类问题的常用算法。它通过尝试所有可能的选择来找到问题的解,当发现当前选择不符合要求时,就回溯到之前的状态,然后尝试其他的选择。 1、基本思想: 从问题的起

    2024年02月11日
    浏览(45)
  • 你是真的“C”——函数递归详解青蛙跳台阶

       哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘 青蛙跳台阶问题简述: 😍     一只青蛙可以一次跳 1 级台阶或一次跳 2 级台阶 。例如

    2024年02月02日
    浏览(46)
  • 【ACM组合数学 | 错排公式】写信

    题目链接:https://ac.nowcoder.com/acm/contest/54484/B 题意很简单,但是数据范围偏大。 首先来推导一下错排公式: [D(n) = n!sum_{k=0}^{n}frac{(-1)^k}{k!}] 设一个函数: [S_i表示一个排列中p_i = i的方案数] 那么我们可以知道: [D(n) = n! - |cup_{i=1}^{n}S_i|] 这个表示 所有方案数 减去 至少有

    2023年04月17日
    浏览(38)
  • 动态规划(一) 变态青蛙跳台阶、最大连续子数组和、字符串分割 附源码讲解

    实现 import java.util.*; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); while (scan.hasNext()){ int length = scan.nextInt(); int[] array = new int[length]; for (int i = 0; i length; i++) { array[i] = scan.nextInt(); } System.out.println(findResult(array)); } } private static int findResult(int[] array) {

    2024年04月17日
    浏览(55)
  • 用C语言实现定积分求解的三种方法,梯形公式,辛普森公式,自适应辛普森公式

    1.梯形公式: 梯形公式(trapezoidal rule)是一种求定积分的方法。它假定函数在区间上是一条直线,因此可以通过计算梯形的面积来估计函数的定积分 可以用指针来初步优化这个代码: 2.辛普森公式: 辛普森公式(Simpson\\\'s rule)是一种求定积分的方法。它是由英国数学家 Tho

    2024年02月06日
    浏览(41)
  • C语言实现求解斐波那契数列的四种方法及优化处理(递归,迭代,特殊性质公式,矩阵快速幂)

            众所周知, 斐波那契数列 是非常经典的一个数列,它的数学公式如下         为了便于观察,我们列出它的几项:0  1  1  2  3  5  8  13  21......         下面我们将介绍四种方法来用C语言计算机代码实现对斐波那契数列的求解,分别是:递归法,迭代法

    2023年04月09日
    浏览(41)
  • html5学习笔记16-MathML 数学标记语言,书写数学符号和公式的置标语言

    https://www.runoob.com/html/html5-mathml.html

    2024年02月11日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包