今ハノイの塔をJavaで実装しているのですが「n--」にすると動かなくなり、「n-1」すると動きます。
違いを教えていただけないでしょうか?
ソースコードはこちらです
Java
1class Hanoitower{ 2 public static void main(String[] args) { 3 int n= Integer.parseInt(args[0]); 4 5 hanoi(n,0,2); 6 } 7 8 static void hanoi(int n,int i,int j){ 9 if(n>1){ 10 int k= 3-i-j; 11 hanoi(n-1,i,k); 12 System.out.println("円盤を"+i+"番目から"+j+"番目へ移動"); 13 hanoi(n-1,k,j); 14 }else{ 15 System.out.println("円盤を"+i+"番目から"+j+"番目へ移動"); 16 } 17 } 18} 19
実行結果
at Hanoitower.hanoi(Hanoitower.java:11) at Hanoitower.hanoi(Hanoitower.java:11) at Hanoitower.hanoi(Hanoitower.java:11) at Hanoitower.hanoi(Hanoitower.java:11) ......(かなり長い)
Javaバーション:
$java -version java version "1.8.0_201" Java(TM) SE Runtime Environment (build 1.8.0_201-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/02 05:54