一個人爬樓梯,可能走一步、兩部、三步。編程,求他上一有n階的梯級的走法-java實現


package youling.studio.test;

import java.util.concurrent.atomic.AtomicInteger;

public class Test07 {
	private AtomicInteger count = new AtomicInteger(0);
	public static void main(String[] args) {
		int n = 20;
		Test07 t = new Test07();
		t.walk(n);
		System.out.println(t.count.get());
	}
	
	public void walk(int n) {
		if(n>3) {
			walk(n-1);
			walk(n-2);
			walk(n-3);
		}else if(n==3) {
			this.count.getAndIncrement();
			walk(n-1);
			walk(n-2);
		}else if(n==2) {
			this.count.getAndIncrement();
			walk(n-1);
		}else {
			this.count.getAndIncrement();
			return;
		}
	}
	
	
}

遞歸終止條件:剩余台階數為1的時候,此時只有一種選擇.

走法界定:只有當前剩余值,可能剛好是一種走法的補數的時候,對走法進行加1操作.





注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com