【校招面试 之 剑指offer】第10-2题 青蛙跳台阶问题

题目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;
}
原文地址:https://www.cnblogs.com/xuelisheng/p/9358534.html