走楼梯

原创 2015年11月20日 17:21:33

走楼梯

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

小虎发现走楼梯的时候一次上一个台阶比较惬意,一次上两个台阶比较高效,一次上三个台阶就很累人。
小虎是一个即注重质量又注重高效的人,于是他就在上楼梯的时候每步就只跨上一个台阶或两个台阶,
现在小虎想知道他这样上n阶的楼梯一共有多少种走法,但是他又不想亲身经历,只好求助于会编程的你,帮他解决这个问题了。
 

输入

第一行是T,表示接下来有T组输入,每组输入一个N(2 <= N <= 1000)

输出

对应每组输入输出一共有多少种走法。

示例输入

3
10
9
22

示例输出

89
55
28657

提示

 

来源

 

示例程序

 
#include <stdio.h>    
#include <string.h>    
int max(int a,int b)  
{  
    return a>b?a:b;  
}  
char dsf[1001][500]= {"0","1","2","3"};    
int main()    
{    
    int a[500],b[500],i,j;    
    for(i=3; i<=1000; i++)    
    {    
        memset(a,0,sizeof(a));    
        memset(b,0,sizeof(b));    
        int l1=strlen(dsf[i-1]);    
        int l2=strlen(dsf[i-2]);    
        for(j=0; j<l1; j++)    
            a[j]=dsf[i-1][l1-j-1]-'0';    
        for(j=0; j<l2; j++)    
            b[j]=dsf[i-2][l2-j-1]-'0';    
        for(j=0; j<max(l1,l2); j++)    
        {    
            a[j]+=b[j];    
            if(a[j]>9)    
            {    
                a[j]-=10;    
                a[j+1]++;    
            }    
        }    
        for(j=400; j>=0; j--)    
        {    
            if(a[j]!=0)    
            {    
                break;    
            }    
        }    
        int l=j,ll=j;    
        for(j=0; j<=l; j++)    
            dsf[i][j]=a[ll--]+'0';    
        dsf[i][j]=0;    
    
    }    
    int t,n;    
    scanf("%d",&t);    
    while(t--)    
    {    
        scanf("%d",&n);  
        printf("%s\n",dsf[n]);  
    }    
    return 0;    
} 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

SDUT OJ 走楼梯

(复习与深刻理解有多重要)

栈的使用(3)-走楼梯问题

走楼梯问题: 有n阶台阶,每次只可以走1阶或2阶,有多少中走法? 可以用递归实现: 如果对递归比较的熟悉的话,可以很快将递归的代码转化成非递归的; #include "stdio.h" #i...

总结一类问题:铺地板砖,走楼梯,自然数拆分...

(1) 楼梯的走法:一个楼梯有N阶,从cia

动态规划走楼梯

// // main.cpp // 动态规划走楼梯 // // Created by liujan on 11/18/14. // Copyright (c) 2014 liujan. All...

有关于递归函数的一些学习记录(Recursion)走楼梯,递归找出最两个数的大公约数,汉诺塔问题

递归函数的定义是指在函数执行的过程中,在函数体中直接或间接的调用了自己,这样的函数就是递归函数。递归函数的使用使得分而制之(Divide and Conquer)的思想得意实现,并在解决循环和一些复杂...

走楼梯问题

声明:题目来自: http://blog.csdn.net/v_JULY_v/archive/2010/11/17/6015165.aspx  JULY整理了100道微软等公司的面试题目,我想先不看答...

建筑楼梯dw.cad

  • 2015-04-01 09:24
  • 47KB
  • 下载

一个人走一个n阶的楼梯,他一步可以走1阶,2阶,3阶,这三种情况,问走完这n阶的楼梯共有多少种不同的走法?

当时脑子不够用,10级楼梯嘛,每一次至少走一步,走完10步最多10次,那么用10个循环可以搞定,够傻逼的吧,看下面。 int method_num = 0; int judge_num = 0; ...

楼梯照明灯

内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)