カエルのジャンプステップのスケーリングの問題(フィボナッチ数の問題)

拡張問題(フィボナッチ数列のカエルジャンプフィボナッチレベル程度)10インタビューの質問「安全プランを証明します」:

私たちは、カエルが唯一のステージや二段ジャンプすることができたときにカエルの順序がnにジャンプすることができれば、我々は、フィボナッチ列がしかし、再帰的または非再帰的なフォームを使用して計算する問題に変換することができますことを知っています(n次を含む)内の順序は、どのようにそれを計算するとき?

トピック:

問題のカエルのジャンプ段階の条件が変更された場合、:カエルは、クラス1レベルにジャンプすることができ、あなたはまた、レベル2に飛び乗っすることができます... Nもステージ上でジャンプすることができ、カエルは学年レベルnを跳んだその時点でジャンプの多くの種類があるのですか?

アイデア:

あなたが最初のカエルジャンプ1次を選択した場合は、カエルのジャンプ2は、一次選択した場合は、最大n-1の順序で次のジャンプでは、あなたは、次のことができる唯一の、N-1忠ジャンプ方法まで持つことができますN-2オーダーをジャンプ、それは忠は、...最初の選択肢のカエルのジャンプのn-1の順序は、次のステップは、唯一の1をジャンプすることができ、そしてもしそうなら、あなたは1まで持つことができますジャンプのn-2まで持つことができます種は+ F(N-2)ジャンプの種類は、次に、(N)F、従って、それがn段カエルジャンプ総レベルF(N)と仮定され、ジャンプ= F(N-1)+ 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)= 2 * 2 * F(N-2)= 2 * 2 * 2 * F(N-3)= ... = 2 ^(N- 1)* F(N-(N-1))= 2 ^(N-1)* F(1)= 2 ^(N-1)、次のコード

/**
	 * 青蛙能跳n阶以内
	 * @param args
	 */
	public int Fibonacci2(int n){
		
		if(n==0)
			return 0;
		
		/*if(n==1)
			return 1;*/
		//2*Fibornacci2(n-1)
		return (int) Math.pow(2,n-1);
	}

以上ではない以上難しいが、コードが、より洗練された展開のアイデアは、問題の歓迎がありますが、あなたに感謝!

公開された24元の記事 ウォンの賞賛0 ビュー604

おすすめ

転載: blog.csdn.net/weixin_43896829/article/details/104458016