第39级台阶



题目标题: 第39级台阶
    小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!
    站在台阶前,他突然又想着一个问题:
    如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?
   请你利用计算机的优势,帮助小明寻找答案。
要求提交的是一个整数。

注意:不要提交解答过程,或其它的辅助说明文字。

/*
1,有39级台阶 
2,一共要迈偶数步
3,每一步只能是1级或者2级
求上法 
若 1级的有a步,2级有b步;
则可知b的范围,1~19;
1,a+2b==39;
2,a+b%2==0;
3,当b已知,则其方法数为C(b,39-b); 
*/
#include<stdio.h> 
int main()  
{  
	int f(int k);
	int i,a,b,sum=0;
	for(b=1;b<=19;b++)
	{		
		a=39-2*b;
    	if((a+b)%2==0)
		sum+=f(b);          //求总的方法数; 
		
	} 
	printf("%d",sum); 
	return 0;
};
int f(int k){
	int i,n=1;
	for(i=0;i<k;i++){
		n=n*(39-k-i)/(i+1);   //求C(39-b,b)的组合数; 
	}
	return (n);
} 
/* 总结一下组合数和排列数的求法;
int c=1,a=1;
C(n,a)=n!/a!*(n-a)!
for(i=0;i<a;i++)
	c=c*(n-i)/(i+1);
	
A(n,a)=n!/(n-a)!
for(i=n-a+1;i<=n;i++)
	a=a*i;
*/

注意排列组合也是常考点。公式一定别弄错。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值