10级台阶,一次一步或两步,打印所有的走法

来源:互联网 发布:vmware player for mac 编辑:程序博客网 时间:2024/05/17 03:43

走第一台阶只有1种方法, 走第二台阶有2种方法,(一步或两步..) 走第三台阶的时候就是分两步了:可以从第一台阶直接到第三台阶,也可以是从第二台阶到第三台阶,所以有1+2=3种方法; 走第四台阶也是分两步:可以从第二台阶直接到第四台阶,也可以是从第三台阶到第四台阶,所以有3+2=5种方法; ............. 以此类推,走1-9台阶需要的步数就是:1,2,3,5,8,13,21,34,55(斐波那契数列:每项等于前两项和)所以第10台阶需要的步数就是:34+55=89步

public class nm123 {public static void main(String[] args) {printSteps("", 10);}public static int total=0; private static void printSteps(String preSteps, int leftSteps){    if(preSteps == null)        preSteps = "";    if(leftSteps < 0)    {        System.out.println("can't print Steps, leftSteps < 0");    }    if(leftSteps == 1)    {        System.out.println(preSteps + " 1");        total++;        return;    }    else if(leftSteps == 0)    {        System.out.println(preSteps);        total++;        return;    }    for(int i = 1; i <= 2; i++)    {        printSteps(preSteps + " " + i, leftSteps - i);    }    System.out.println(total);}}


0 0
原创粉丝点击