###前提・実現したいこと
IntStackはInt型のスタック、先入れ後出しのStackです。
static void recur3(int n){
if(n > 0){
recur3(n-1);
recur3(n-2);
System.out.println(n);
}
これをIntStackをつかって
static void recur3(int n){
IntStack s = new IntStack(100);
if(n > 0){
s.push(n);
n = n - 2;
}
continue;
if(s.isEmpty() != true){
n = s.pop();
System.out.println(n);
}
}
これだと
static void recur3(int n){
if(n > 0){
recur3(n-2);
System.out.println(n);
}
}
しかなりません
IntStackをつかって書くにはどうすれば良いでしょうか?
recur(n-1)まで含めて書くにはどうすれば良いでしょうか?
スタック 入り口 1, 2, 1, 3 底
###発生している問題・エラーメッセージ
static void recur3(int n){ if(n > 0){ recur3(n-1); recur3(n-2); System.out.println(n); }
###該当のソースコード
java
1static void recur3(int n){ 2 IntStack s = new IntStack(100); 3 if(n > 0){ 4 s.push(n); 5 n = n - 2; 6 } 7 continue; 8 if(s.isEmpty() != true){ 9 n = s.pop(); 10 System.out.println(n); 11 } 12} 13 14static void recur3(int n){ 15 int nn = n; 16 IntStack s = new IntStack(100); 17 if(n > 0){ 18 s.push(n); 19 n = n - 2; 20 } 21 continue; 22 if(nn > 0) 23 nn = nn - 1; 24 s.push(nn); 25 } 26 continue; 27 if(s.isEmpty() != true){ 28 n = s.pop(); 29 System.out.println(n); 30 } 31} 32
###試したこと
recur3(1)→ recur3(0) recur3(-1) Sys.out.1 → Sys.out.1
recur3(2)→ recur3(1) recur3(0) Sys.out.2 → Sys.out.1 Sys.out.2
recur3(3)→ recur3(2) recur(1) Sys.out.3 → Sys.out.1 Sys.out.2 Sys.out.1 Sys.out.3
スタック 入り口 1, 2, 1, 3 底
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答3件
あなたの回答
tips
プレビュー