算法题: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);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值