首页 > 试题广场 >

小乐乐走台阶

[编程题]小乐乐走台阶
  • 热度指数:23979 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

小乐乐上课需要走n阶台阶,因为他腿比较长,所以每次可以选择走一阶或者走两阶,那么他一共有多少种走法?


输入描述:
输入包含一个整数n (1 ≤ n ≤ 30)


输出描述:
输出一个整数,即小乐乐可以走的方法数。
示例1

输入

2

输出

2
示例2

输入

10

输出

89
#include <stdio.h>
int means(int n) {
    int m = 0;
    //斐波那契数列问题
    int a = 1, b = 2;
    if (1 == n) {
        m = a;
    } else if (2 == n) {
        m = b;
    } else {
        m = means(n - 1) + means(n - 2);
    }
    return m;
}

int main() {
    int n = 0;
    scanf("%d", &n);
    printf("%d\n", means(n));
    return 0;
}
发表于 2025-01-17 21:32:51 回复(0)
#include<stdio.h>

int fun(int n)
{
    if (n == 1)
        return 1;
    if (n == 2)
        return 2;
    return fun(n - 1) + fun(n - 2);
}
int main()
{
    int n = 0;
    scanf("%d", &n);
    int ret = fun(n);
    printf("%d", ret);

    return 0;
}
发表于 2024-10-16 17:49:02 回复(0)
#include<stdio.h>

int main()
{
    int f[50];
    int n;
    scanf("%d",&n);
    f[0]=1;
    f[1]=1;
    for(int i =2;i<=n;i++){
        f[i]=f[i-1]+f[i-2];
    }
    printf("%d",f[n]);
    return 0;
}
发表于 2024-09-17 11:19:46 回复(0)
#include <stdio.h>

int Steps(int n)
{
    //剩0台阶一个走法,剩一个台阶一种走法
    //剩两个台阶两种走法,一步一步走,两步走
    if(n == 0)
        return 0;
    if(n == 1)
        return 1;
    if(n == 2)
        return 2;
    
    //走两步的走法加上走一步的走法就是总的走法
    return Steps(n-1) + Steps(n-2);
}

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

    int st = Steps(n);
    printf("%d", st);

    return 0;
}

发表于 2024-06-27 22:12:35 回复(0)
#include <stdio.h>

int Sum(int n)
{
    if(n <= 2)
    {
        return n;
    }
 
    return Sum(n - 2) + Sum(n - 1);

}
int main()
 {
    int input = 0;
    int sum = 0;

    scanf("%d", &input);

    sum = Sum(input);

    printf("%d\n", sum);

    return 0;
}

编辑于 2024-02-07 22:29:24 回复(0)
#include <stdio.h>
int fib(int n)
{
    if(n<=2)
    return n;
    else
    return fib(n-1)+fib(n-2);
}
int main() {
    int n=0;
    scanf("%d",&n);
    printf("%d\n",fib(n));
    return 0;
}

发表于 2024-01-14 16:59:28 回复(1)
#include<stdio.h>
int taijie(int n)
 {
    if (n == 1) {
        return 1;
    }
    if (n == 2) {
        return 2;
    }
    if (n > 2) {
        return  taijie(n - 1) + taijie(n - 2);
    }
    else {
    return -1;
    }
 }

int main()
{
    int n = 0;
    scanf("%d",&n);
    int count=taijie(n);
    printf("%d",count);
    return 0;
}
发表于 2023-11-16 10:05:32 回复(0)
#include <stdio.h>
// 斐波那契数列问题
// 思路:递推 + 回归
int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
        int f, tmp, f1 = 0, f2 = 1;
        for(int i = 0; i < n; i++)
        {
            f = f1 + f2;
            tmp = f2;
            f2 = f1 + f2;
            f1 = tmp;
        }
        printf("%d\n", f);
    }
    return 0;
}
发表于 2023-03-09 18:50:33 回复(0)
#include <stdio.h>

int function(int n) {
    if (n >= 2) {
        return function(n - 1) + function(n - 2);
    }
    return 1;
}
int main() {
    int n = 0;
    scanf("%d", &n);
    int ret = function(n);
    printf("%d\n", ret);
    return 0;
}

发表于 2023-02-14 14:04:26 回复(0)
#include <stdio.h>
int main()
{
    int n, a[31] = {0, 1, 2};
    scanf("%d", &n);
    for(int i = 3; i <= n; i++)
        a[i] = a[i-2]+a[i-1];
    printf("%d", a[n]);
    return 0;
}

发表于 2022-07-04 11:35:15 回复(0)
#include <stdio.h>

int game(int n)
{
   int sum = 0;
   int left = 1;
   int right = 2;
   if(n==1)
      sum = 1;
   else if(n==2)
      sum = 2;
   else
   {
       while(n-2>0)
       {
           sum = left+right;
           left = right;
           right = sum;//这两个代码不能调换, 写成 right = sum; left = right;就错了!!!
           n--;
       }
   }
     return sum;
}

int main()
{
    int n = 0;
    scanf("%d",&n);
    int ret = game(n);
    printf("%d\n",ret);
    
    return 0;
}
发表于 2022-07-01 12:38:24 回复(0)
#include <stdio.h>
int method(int x)
{
    if (x > 1)
        return method(x - 1) + method(x - 2);
    return 1;
}
int main()
{
    int input = 0;
    while (scanf("%d", &input) != EOF)
    {
        int num = method(input);
        printf("%d\n", num);
    }
    return 0;
}

发表于 2022-05-04 15:17:49 回复(0)
#include<stdio.h>
int Fib(int n)
{
    int a=1;
    int b=1;
    int c=0;
    if(n<=2)
        return 1;
    while(n>2)
    {
        c=a+b;
        a=b;
        b=c;
        n--;
    }
    return c;
}
int main()
{
    int num=0;
    scanf("%d",&num);
    int ret=Fib(num+1);
    printf("%d\n",ret);
    return 0;
}

发表于 2022-04-24 15:46:34 回复(0)

include<stdio.h>

int algo(int n){
if(n==1){
return 1;
}else if(n==2){
return 2;
}else{
return algo(n-1)+algo(n-2);
}
}
int main(){
int num=0;
scanf("%d",&num);
int ret=algo(num);
printf("%d",ret);
return 0;
}

发表于 2022-04-16 14:52:52 回复(0)
#include<stdio.h>

int num(int n)
{
    if(n > 1)
    {
        if(n - 2 > 0)
        {
            return num(n - 1) + num(n - 2);
        }
        else
            return 2;
    }
    else
        return 1;
}

int main()
{
    int n = 0;
    scanf("%d", &n);
    int ret = num(n);
    printf("%d",ret);
    return 0;
}

发表于 2022-04-13 21:05:53 回复(0)
#include<stdio.h>

long int Ways(int n) {

    if (n > 0) {

        if (n <= 2)
            return n;

        else
            return Ways(n - 1) + Ways(n - 2);
    }

    return 0;
}
int main() {

    int n = 0;

    scanf("%d", &n);

    long int ways = Ways(n);

    if (ways > 0)
        printf("%d\n", ways);
    else
        printf("input error");

    system("pause");

    return 0;
}

发表于 2022-04-01 16:17:47 回复(0)
#include<stdio.h>

int f(int n)
{
    if(n<=2){return n;}
    return f(n-1)+f(n-2);
}



int main(void)
{
    int n;
    scanf("%d",&n);
    printf("%d",f(n));
}
发表于 2022-03-13 18:29:46 回复(0)
#include<stdio.h>
#include<string.h>
int* Solution(int n)
{
    int* p = malloc(sizeof(int)*n+1);
    int i = 0;
    p[1] = 1;
    p[2] = 2;
    for(i = 3; i <= n; i++)
    {
        p[i] = p[i-1]+p[i-2];
    }
    return p;
}
int main()
{
    int num = 0;
    int* ret = NULL;
    scanf("%d", &num);
    ret = Solution(num);
    printf("%d", ret[num]);
    free(ret);
    ret =NULL;
    return 0;
}
动规
发表于 2022-03-07 12:00:14 回复(0)

问题信息

上传者:牛客309119号
难度:
26条回答 4151浏览

热门推荐

通过挑战的用户

查看代码
小乐乐走台阶