藍橋杯《39級階梯》
阿新 • • 發佈:2020-12-21
藍橋杯《39級階梯》
小明剛剛看完電影《第9級臺階》,離開電影院的時候,他數了數禮堂的前的臺階數,恰好是39級!
站在臺階前,太突然又想到一個問題:
如果我每一隻能邁上1個或2個臺階。先邁左腳,然後左右交替,最後一步是邁右腳,也就是說一共要走偶數步。那麼,上完39級臺階,有多少種不同的上法吶?
(1)問題分析
顯然是一個遞迴問題。走了n=39級,並且走了偶數步,這時方法種數num++;或者走了40,這時不變化。函式fun()可以計算在上面的條件n級有多少種走法,則若走了1階臺階,剩餘的走法有fun(n-1)種,若走了2階,剩餘的走法有fun(n-2)種。
(2)程式程式碼
package ch01;
import java.util.Scanner;
public class zuidagonggongzixvlie {
private static int num=0;
public static void main(String[] args) {
fun(39,0);
System.out.println(num);
}
public static void fun(int n,int step) {
if(n<0) return;
if(n == 0)
{
if(step%2 == 0)
num++ ;
return;
}
fun(n-1, step+1);
fun(n-2, step+1);
}
}