首页 > 试题广场 >

跳台阶扩展问题

[编程题]跳台阶扩展问题
  • 热度指数:12722 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶(n为正整数)总共有多少种跳法。

数据范围:
进阶:空间复杂度 , 时间复杂度

输入描述:
本题输入仅一行,即一个整数 n 


输出描述:
输出跳上 n 级台阶的跳法
示例1

输入

3

输出

4
示例2

输入

1

输出

1
#include <stdio.h>
int jump(int x)
{
    int a = 1;
    int b = 1;
    int count = 1;
    if (x <= 2)
        count = x;
    else
    {
        for (a = x - 1; a > 0; a--)
        {
            b += jump(a);
        }
        count = b;
    }
    return count;
}

int main()
{
    int n = 0;
    scanf("%d", &n);
    printf("%d\n", jump(n));

    return 0;
}

发表于 2023-07-11 17:04:25 回复(0)
//dp3
#include<stdio.h>
#include<stdlib.h>
int main(){
	int n;
	while(scanf("%d",&n)!=EOF){
		int *num=(int *)malloc(sizeof(int)*(n+1));
		num[0]=0,num[1]=1,num[2]=2,num[3]=4;
		for(int i=4;i<=n;i++){
			num[i]=1;
			for(int j=1;j<=i-1;j++)
				num[i]+=num[j];
		}
		printf("%d\n",num[n]);
	}
	return 0;
}

发表于 2022-03-21 19:40:31 回复(0)