首页 > 其他分享 >青蛙跳台阶 递归 C语言

青蛙跳台阶 递归 C语言

时间:2023-02-02 16:00:13浏览次数:52  
标签:台阶 递归 int 假设 青蛙 C语言 Jump return

青蛙跳台阶也是一道经典的递归题:一个青蛙,一次可以跳一级台阶,也可以一次跳两级台阶,问当跳n级台阶,有多少种跳法

青蛙跳台阶  递归  C语言_青蛙跳台阶

青蛙跳台阶  递归  C语言_递归_02

青蛙跳台阶  递归  C语言_青蛙跳台阶_03

青蛙跳台阶  递归  C语言_递归_04

到n等于4 的时候,我们发现并不是n=种类 那么简单,如果数学底子好,可以发现其实是n-1的种类加上n-2的种类。

接下来,我们通过图来分析:

假设n=3:假设我们站在第一节台阶上,往上跳有2种,也就是n=2的结果;而当我们站在第二节台阶上,就有一种跳法,即n=1时的结果,所以就是前两次的结果相加

我们用4再验证一下:假设我们站在第一层上,前面有三阶台阶,要3次;假设在第二级台阶,前面还有2层,即2次,所以是5种

假设是Jump函数:当n>=3时,Jump(n)=Jump(n-1)+Jump(n-2)


代码如下:

#include <stdio.h>

int Jump(int n)
{
if (n == 1)
{
return 1;

}
else if (n == 2)
{
return 2;

}
else
{
return Jump(n - 1) + Jump(n - 2);
}
}

int main()
{
int n = 0;
int a = 0;
scanf("%d", &n);
a = Jump(n);
printf("%d", a);
return 0;

}

标签:台阶,递归,int,假设,青蛙,C语言,Jump,return
From: https://blog.51cto.com/u_15928027/6033730

相关文章

  • 详解结构体--C语言
    我们平时使用的C语言类型类型主要是整数类型、浮点数类型以及指针类型,你是否想过我们该如何将一串不同类型的数据整合起来,实现封装?事实上,C语言也提供给我们一些自定义类型,......
  • 二叉树的递归遍历
    二叉树遍历前序遍历staticList<Integer>list=newArrayList<>();//前序遍历publicstaticList<Integer>preorderTraversal(TreeNoderoot){if(......
  • 字节序说明并用C语言实现转换
    反转字节序之大小端转换什么是大端和小段?举个例子,比如int类型的数:0x12345678在内存中的表现形式。1)大端模式:Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存......
  • C语言实现查找一组数中的最大和最小值
    查找一组数中的最大、最小值/***查找一组数中的最大数*@paramnums数组指针*@paramstepsizeof(type)*@paramn该组数中有几个数*@return未找到返......
  • C语言基础:结构体对齐规则与0字节数组
    C语言基础:结构体对齐规则与0字节数组不同的编译器和系统默认的对齐规则会有差异,这里我使用的win32的MinGWC语言结构体一般是默认四字节对其的。结构体对其规则一般的,C语言结......
  • 递归先序输入构造一颗二叉树并输出并求从根结点出发的最大带权和 (c++)
    #include<iostream>#include<cstdio>usingnamespacestd;typedefstructBiTNode//一颗二叉树的结构体{intdata;structBiTNode*lchild,*rchiild;}BiTNode,......
  • C语言&C++
    C语言和C++中都有结构的概念,但是在C语言中结构只有成员变量,而没成员方法,而在C++中结构中,它可以有自己的成员变量和成员函数。但是在C语言中结构的成员是公共的,不管什么人想......
  • 初识C语言1
    #include<stdio.h>//standardinputoutputintmain()//主函数程序的入口,有且仅有一个{printf("helloworld");//printfunction打印函数return0;}C语言中的变量类型:char......
  • C语言练习------打字游戏
    1打字游戏(1)随机函数A:srand((unsigned)time(NULL));以当前时间为准,设置随机种子。注意:此函数,在每次开始游戏后调用一次即可。B:ch=rand();注意:rand()函数,每调用一次,产生一......
  • C语言-printf函数
    转换字符参数类型;转换结果cchar;字符dint;有符号十进制整数i同上edouble;以指数形式输出单、双精度浮点数(小写e)E同上(大写E)fdo......