蓝桥杯39级台阶java解法

蓝桥杯39级台阶java解法

注意:该解法运用概率论思想

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

思想:39可以分为 39个1 或 19个2加1个1,所以我们可以用m代表走了2阶台阶的步数,用n来表示总步数。m从0递增到19,每加1,总步数n就减1。这样就变成了19个用Cmn来解决的排列组合问题。
该题答案为:51167078


/**
 * @author 江西财经大学 软件182班 丁文佳
 *
 * 2019年11月27日下午8:49:43
 */
//39可以分为 39个1 和 19个2加1个1 
//可以用cmn的for循环    m代表走2步的步数  n代表总步数  再排列组合
//再写一个排列的算法用来调用
public class 台阶 {
    
    

	/**
	 * @param args
	 */
	public static void main(String[] args) {
    
    
		// TODO Auto-generated method stub
		int n=39;
		int i=0;
		double result=0;
		for(i=0;i<=19;i++,n=n-1) {
    
    
			if(n%2==0)
				result=result+pailie(i,n);
			else continue;
		}
		System.out.println("一共有"+result+"种方法");
	}
	public static double pailie(int m,int n) {
    
    
		double result=0;
		result=jiecheng(n)/(jiecheng(n-m)*jiecheng(m));
		return result;
	}
	public static double jiecheng(int m) {
    
    
		int i;
		double result=1;
		for(i=1;i<=m;i++) {
    
    
			result=result*i;
		}
		return result;
	}

}

还是菜鸟,写的不好的地方多多包涵啊

猜你喜欢

转载自blog.csdn.net/gem_Microphone/article/details/103284987
今日推荐