1. 程式人生 > 其它 >藍橋杯《39級階梯》

藍橋杯《39級階梯》

技術標籤:java39階臺階遞迴法java

藍橋杯《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); } }

(3)執行結果

在這裡插入圖片描述