算法设计中的台阶问题

来源:百度知道 编辑:UC知道 时间:2024/06/21 17:38:46
某人上台阶,他一步可迈一个台阶,两个台阶或三个台阶,共有n个台阶,编程输出 他所有可能上法。
例如n=4时,则有(1 1 1 1)、(1 1 2)、(1 2 1)、(1 3)、(2 1 1)、(2 2)、(3 1)等7种不同的上法。

楼上的只给出了总的数量,楼主要求打印所有上法
--------------------------------------------------------
递归函数f(N),分三种处理:
1.第一步1级,再求f(N-1)
2.第一步2级,再求f(N-2)
3.第一步3级,再求f(N-3)
--------------------------------------------------------
结果:(N=10)
( 1 1 1 1 1 1 1 1 1 1 )
( 1 1 1 1 1 1 1 1 2 )
( 1 1 1 1 1 1 1 2 1 )
( 1 1 1 1 1 1 1 3 )
( 1 1 1 1 1 1 2 1 1 )
( 1 1 1 1 1 1 2 2 )
( 1 1 1 1 1 1 3 1 )
( 1 1 1 1 1 2 1 1 1 )
( 1 1 1 1 1 2 1 2 )
( 1 1 1 1 1 2 2 1 )
( 1 1 1 1 1 2 3 )
( 1 1 1 1 1 3 1 1 )
( 1 1 1 1 1 3 2 )
( 1 1 1 1 2 1 1 1 1 )
( 1 1 1 1 2 1 1 2 )
( 1 1 1 1 2 1 2 1 )
( 1 1 1 1 2 1 3 )
( 1 1 1 1 2 2 1 1 )
( 1 1 1 1 2 2 2 )
( 1 1 1 1 2 3 1 )
( 1 1 1 1 3 1 1 1 )
( 1 1 1 1 3 1 2 )
( 1 1 1 1 3 2 1 )
( 1 1 1 1 3 3 )
( 1 1 1 2 1 1 1 1 1 )
( 1 1 1 2 1 1 1 2 )
( 1 1 1 2 1 1 2 1 )
( 1 1 1 2 1 1 3 )
( 1 1 1 2 1 2 1 1 )
( 1 1 1 2 1 2 2 )