算法——青蛙跳台阶

算法题:青蛙跳台阶

问题

一只青蛙可以一次跳 1 级台阶或者一次跳 2 级台阶。
问要跳上第 n级台阶有多少种跳法?

思考

逆向思维:如果青蛙要跳上第 n级台阶,只有两个中情况
一、从第 n−1 级台阶跳一级上来
二、从第 n−2级台阶跳两级上来
这种就跟斐波拉契数列完全符合:f(n)=f(n−1)+f(n−2)

代码

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int Fibo(int n){
    
    
	if(n==1){
    
    
		return 1;
	}else if(n==2){
    
    
		return 2;
	}else{
    
    
		return Fibo(n-1) + Fibo(n-2);
	}
} 
int main(int argc, char *argv[]) {
    
    
	int num, temp;
	printf("台阶数:"); 
	scanf("%d",&num);
	temp = Fibo(num);
	printf("共有%d种跳法",temp); 
	return 0;
}