题目1:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个n级台阶共有多少种跳法?
题目2:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶...也可以一次跳n级台阶。求该青蛙跳上一个n级台阶共有多少种跳法?
#include<iostream> #include<math.h> using namespace std; // int jumpCase1(int n){ if(n == 1) return 1; if(n == 2) return 2; return jumpCase1(n - 1) + jumpCase1(n - 2); } // 数学归纳法可得出f(n) = (2)^n-1 int jumpCase2(int n){ return int(pow(2.0, double(n-1))); } int main(){ // 青蛙跳台阶问题1 cout<<"第一种跳法有 "<<jumpCase1(5)<<" 种方法"<<endl; // 青蛙跳台阶问题2 cout<<"第二种跳法有 "<<jumpCase2(5)<<" 种方法"<<endl; system("pause"); return 0; }