質問するログイン新規登録

質問編集履歴

3

2020/08/11 00:28

投稿

Japanise
Japanise

スコア11

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,6 @@
8
8
  の関係が成り立ち、 C = 6-(A+B)
9
9
  とすることができるからint another = 6-(before+after)と表せるのかなと思いました。
10
10
 
11
- また、ヒントとしてn枚を杭xから杭yに移動させることは「n-1枚を○○○して、残る1枚を○○し、先程のn-1枚を○○する」とあります。
12
11
 
13
12
  void hanoidisk( int before, int after ){
14
13
  printf("杭%dから杭%dに移動\n", before, after);

2

2020/08/11 00:28

投稿

Japanise
Japanise

スコア11

title CHANGED
File without changes
body CHANGED
@@ -1,8 +1,15 @@
1
- ハノイの塔でn枚の円盤の移動手順を比較的短く出力するプログラムをhanoimove関数の中再帰呼び出しを使い完成させいのですがどーすればいいのかわかりません。
1
+ ハノイの塔でn枚の円盤の移動手順を比較的短く出力するプログラムを下のプログラムを基にhanoimove関数の中再帰呼び出しを使い完成させなさという問題があるのですがどーすればいいのかわかりません。
2
- hanoidisk関数は、杭beforeから杭afterへ、円盤を1枚移動させる関数、hanoimove関数は、杭befoteから杭afterへ上からnum枚目までの円盤を移動させる関数、変数anotherはbeforeとafter以外の杭の番号を表すものとして作成しました。
3
- また、n枚を杭xから杭yに移動させることは「n-1枚を○○○して、残る1枚を○○し、先程のn-1枚を○○する」という考えは出たのですがそれをどのようにするのかがわかりません。
4
2
 
3
+ ハノイの塔とは3つの棒あるいは杭を基に考えるのですが、移動前の塔をA,移動先の塔をB,残りの塔をCとすると,
4
+ ■ AからCにN-1枚を移動
5
+ ■ AからBに1枚を移動
6
+ ■ CからBにN-1枚を移動
7
+ とすることができ、A.Bの組み合わせは  A+B+C=6
5
- #include<stdio.h>
8
+ の関係が成り立ち、 C = 6-(A+B)
9
+ とすることができるからint another = 6-(before+after)と表せるのかなと思いました。
10
+
11
+ また、ヒントとしてn枚を杭xから杭yに移動させることは「n-1枚を○○○して、残る1枚を○○し、先程のn-1枚を○○する」とあります。
12
+
6
13
  void hanoidisk( int before, int after ){
7
14
  printf("杭%dから杭%dに移動\n", before, after);
8
15
  }

1

2020/08/10 19:15

投稿

Japanise
Japanise

スコア11

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,7 @@
8
8
  }
9
9
 
10
10
  void hanoimove( int before, int after , int num){
11
- int anotherPole = 6-(before+after);
11
+ int another = 6-(before+after);
12
12
 
13
13
  }
14
14