2013蓝桥杯 【初赛试题】 第39级台阶

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

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

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

输出格式:

输出一个整数

程序分析:

这个程序不需要纠结在左脚和右脚的问题上,从中抽象出限制条件:一共走的步数是偶数;

我们可以通过递归来实现,对每次递归的结果进行判断,如果走过的台阶数为39则,结束递归,判断走的步数是否为偶数,为偶数则为上法计数器加一,否则为无效上法;

#include<stdio.h>
int count=0;

void dfs(int step,int bs){
	if(step>39) return;
	if(step==39){
		if(bs%2==0) count++;
		return;
	}
	dfs(step+1,bs+1);
	dfs(step+2,bs+1);
}


int main(){
	dfs(0,0);
	printf("%d",count);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43806345/article/details/86602474