package leecode;
/**
 *
 * 一共n层台阶,小兔子每次跳1-n个台阶,有多少种可能
 * 分别打印出这些情况
 *
 * 这题是大三懵懂少年时候笔试被虐的 一直耿耿于怀,今天翻出来搞一搞
 */
public class RabbitJump {
    static int count = 0;
    /**
     *
     * @param last 还剩多少个台阶
     */
    public void jump(int last, StringBuffer stringBuffer){
        if(last == 0){
            count++;
            System.out.println("第"+count+ "种可能:"+ stringBuffer.toString());
            return;
        }
        //兔子下一跳可能跳的台阶数
        for(int i = 1; i <= last; i++){
            stringBuffer.append(i+"步 ");
            jump(last - i, stringBuffer);
            stringBuffer = new StringBuffer();
        }
    }
    public static void main(String[] args) {
        new RabbitJump().jump(3, new StringBuffer());
        System.out.println(count);
    }
}