问题:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
测试样例包含一个整数n。(1<=n<=100)
测试样例1:
3
输出结果1:
3
测试样例2:
7
输出结果2:
21
代码1:
#includeusing 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) cout< 代码2:
#includeusing namespace std; int step(int digit); class Step { public: int num(int n) { if(n<=0) return 0; int a=1,b=1,temp; for(int i=2;i<=n;i++) { temp=(a+b)%1000000007; a=b%1000000007; b=temp%1000000007; } return b; } }; int main() { int digit; while(cin>>digit) { Step frog; cout<



