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

算法题:10级台阶,一次一步或两步,打印所有的走法。
此题本质是一个数学排列题,但做了一个变化,根据走法不同,排列不同,当然,这个不重要。(如果换成10个位置,每个位置可放1和2,有多少种放的方法,则完全是一个数学排列题了)。
看代码吧,运动后想起来的解法:

@Test
public void testOne2TenStep()
{
    printSteps("", 10);
}

private 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");
        return;
    }
    else if(leftSteps == 0)
    {
        System.out.println(preSteps);
        return;
    }
    for(int i = 1; i <= 2; i++)
    {
        printSteps(preSteps + " " + i, leftSteps - i);
    }
}

你可能感兴趣的:(算法)