假设你正在爬楼梯,需要n阶你才能到达楼顶。每次可以爬1或2个台阶,有多少种不同的方法可以爬到楼顶呢?请用代码写出这个函数,输入为整数值n,输出为总计方法数m。 (注意:给定n是一个正整数)。

 

/**
 *
用户一次只能爬12个台阶,n台阶楼顶爬到楼顶的方法总数
 * @param numFloor
 * @return
 */
public static Integer getTotalMethod2UpFloor(int numFloor){
    if (numFloor<0){
        return null;
    }
    int count=0;
    int[] intArr=new int[]{1,2};
    Random random = new Random();
    int sumStep=0;
    StringBuilder stringBuilder = new StringBuilder();
    HashSet<String> stringHashSet = new HashSet<>();
    while (true){
        int i = random.nextInt(intArr.length);
        int i1 = intArr[i];
        stringBuilder.append(i1);
        sumStep+=i1;
        if (sumStep==numFloor){
            stringHashSet.add(stringBuilder.toString());
            StringBuilder delete = stringBuilder.delete(0, stringBuilder.toString().length());
            sumStep=0;
            continue;
        }
        count++;
        if (count>1000000){
            break;
        }
    }
    return stringHashSet.size();
}

 

posted on 2025-02-24 20:49  CoderOilStation  阅读(12)  评论(0)    收藏  举报