一个人上台阶可以一次上1个,2个,或者3个,问这个人上n层的台阶,总共有几种走法
这个题看起来不好下手,但是如果深入分析,其实很简单。
思路如下:
当最后一步仅走1阶:那么前面一共有f(n-1),如果最后一步有2个台阶,那么前面一共有f(n-2),如果最后一步有3个台阶,那么前面一共有f(n-3)
故f(n)=f(n-1)+f(n-2)+f(n-3)
public int Up(int n){if(n==1){return 1;}if(n==2){return 2;}if(n==3){return 4;}return Up(n-1)+Up(n-2)+Up(n-3);}