《劍指offer》面試題10(題目二)擴(kuò)展問(wèn)題:
題目:在青蛙跳臺(tái)階的問(wèn)題中,如果把條件改成:一只青蛙一次可以跳上1級(jí)臺(tái)階热凹,也可以跳上2級(jí)...也可以跳上n級(jí),此時(shí)該青蛙跳上一個(gè)n級(jí)的臺(tái)階總共有多少種跳法?
思路:設(shè)該青蛙跳上一個(gè)n級(jí)的臺(tái)階總共有f(n)種跳法,第一次跳1級(jí)庐扫,則剩下的臺(tái)階有f(n-1)種跳法;第一次跳2級(jí)仗哨,則剩下的臺(tái)階有f(n-2)種跳法形庭;......第一次跳n-1級(jí),則剩下的臺(tái)階有f(1)種跳法厌漂。故f(n)= f(n-1)+ f(n-2)+ f(n-3)+ ... + f(1)萨醒。而f(n-1)= f(n-2)+ f(n-3)+ f(n-4)+...+ f(1)。兩式相減得f(n)= 2 * f(n-1)苇倡。
代碼如下:
public int jumpFloor(int n) {
if (n <= 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
return 2 * jumpFloor(n - 1);
}
}