2013年 第四届蓝桥杯C/C++ B组预赛 第三题 第39级阶台阶

题目标题: 第39级台阶

小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!

站在台阶前,他突然又想着一个问题:

如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?


请你利用计算机的优势,帮助小明寻找答案。

要求提交的是一个整数。
注意:不要提交解答过程,或其它的辅助说明文字。

分析:

这个题可以使用递归的思想来解决,并且要找到结束递归的条件,就是台阶数大于39和步数为偶数的同时台阶数为39这两种终止条件。

#include<stdio.h>
int sum=0;          //定义的全局变量 

int main()
{
    
    
	void taijie(int step,int n); 
	taijie(0,0);
	printf("%d",sum);
 	return 0;
 } 
void taijie(int step,int n)
 {
    
    
 	if(n>39)                 //如果台阶数大于39则退出 
 		return;
 	if(n==39&&step%2==0)       //如果台阶数为39并且步数为偶数,则算一种方法 
 	{
    
    
 		sum++;
		return; 
	 }
	taijie(step+1,n+1);            //走一步 
	taijie(step+1,n+2);          //走两步 
 }

答案:51167078

猜你喜欢

转载自blog.csdn.net/qq_46724903/article/details/113198668