问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
测试样例包含一个整数n。(1<=n<=100)
测试样例1:
3
输出结果1:
3
测试样例2:
7
输出结果2:
21
代码1:
#include<iostream>
using namespace std;
int step(int digit);
int main()
{
int digit; //台阶数
while(cin>>digit)
{
step(digit);
}
return 0;
}
int step(int digit)
{
int num=digit/2; //青蛙每次跳2级时,要跳多少次
int sum=0;
for(int j=1;j<=num;j++) //当有j个台阶时,青蛙有多少种跳法
{
int a=1,b=1;
for(int i=1;i<=j;i++) //将两个台阶看做一个,放在不同的位置
{
a*=(digit-j-i+1);
b*=i;
}
sum+=a/b;
}
if(digit==0)