<div class="jsk-margin-top" id="description" style="box-sizing: border-box; margin-top: 1.5rem; color: rgb(51, 51, 51); font-family: Full-Width-Quoration-Marks, '.SFNSText', '.SFUIText', 'Helvetica Neue', Helvetica, 'Segoe UI', Roboto, 'Open Sans', 'Lucida Grande', Arial, Verdana, 'Hiragino Sans GB', 'PingFang SC', 'Source Han Sans CN', 'Source Han Sans SC', 'Microsoft YaHei', 'Wenquanyi Micro Hei', 'WenQuanYi Zen Hei', 'ST Heiti', SimHei, 'WenQuanYi Zen Hei Sharp', FontAwesome, sans-serif; font-size: 16px; line-height: 25.600000381469727px; outline: 0px !important;"><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 1.5rem; outline: 0px !important;">假设你现在正在爬楼梯,楼梯有n级。每次你只能爬1级或者2级,那么你有多少种方法爬到楼梯的顶部?</p><p style="box-sizing: border-box; margin-top: 1.5rem; margin-bottom: 1.5rem; outline: 0px !important;">格式:</p><p style="box-sizing: border-box; margin-top: 1.5rem; margin-bottom: 1.5rem; outline: 0px !important;"> 第一行输入一个数n(n<=50),代表楼梯的级数。</p><p style="box-sizing: border-box; margin-top: 1.5rem; margin-bottom: 1.5rem; outline: 0px !important;"> 接下来一行输出你的方法总数。</p></div><div id="samples" style="box-sizing: border-box; color: rgb(51, 51, 51); font-family: Full-Width-Quoration-Marks, '.SFNSText', '.SFUIText', 'Helvetica Neue', Helvetica, 'Segoe UI', Roboto, 'Open Sans', 'Lucida Grande', Arial, Verdana, 'Hiragino Sans GB', 'PingFang SC', 'Source Han Sans CN', 'Source Han Sans SC', 'Microsoft YaHei', 'Wenquanyi Micro Hei', 'WenQuanYi Zen Hei', 'ST Heiti', SimHei, 'WenQuanYi Zen Hei Sharp', FontAwesome, sans-serif; font-size: 16px; line-height: 25.600000381469727px; outline: 0px !important;"><div class="jsk-margin-vertical-sm" style="box-sizing: border-box; outline: 0px !important; margin-top: 1rem; margin-bottom: 1rem;"><h4 class="title" style="box-sizing: border-box; margin: 0px 0px 1.5rem; outline: 0px !important;">样例输入</h4><pre class="jsk-text-danger jsk-text-default jsk-padding-vertical-xs" style="box-sizing: border-box; white-space: pre-wrap; line-height: 1.6; margin-top: 1rem; margin-bottom: 1rem; background-color: rgb(248, 248, 248); padding: 0.5rem 1rem; word-break: break-all; word-wrap: break-word; color: rgb(211, 49, 49); border: 1px solid rgb(222, 222, 222); border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; outline: 0px !important; font-size: 1.6rem !important; font-family: Inconsolata, Monaco, Menlo, Consolas, 'Courier New', FontAwesome, monospace !important;">5
#include<stdio.h>
int i = 0;
int climb(int a,int b,int c)
{
if(a+c<b)
{
climb(a+c,b,1);
climb(a+c,b,2);
}
if(a+c>b)
{
return 0;
}
if(a + c + 2==b||a + c + 1 ==b)
{
i++;
}
return i;
}
int main()
{
int b;
printf("input a num:");
scanf("%d",&b);
int m = climb(0,b,0);
printf("%d\n",m);
return 0;
}
// 时间复杂度高