蓝桥杯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;
}
}
还是菜鸟,写的不好的地方多多包涵啊