题目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;
}

 

posted on 2018-07-24 10:19  我得去图书馆了  阅读(257)  评论(0编辑  收藏  举报