質問編集履歴

1

なぜそれを知りたいかの理由の追加

2017/09/12 04:47

投稿

nvcpg_198
nvcpg_198

スコア25

test CHANGED
File without changes
test CHANGED
@@ -1,9 +1,63 @@
1
1
  ###Javaでの配列の定義の仕方について
2
2
 
3
- たとえばint型の配列を、全要素数10で定義するとき、
3
+ たとえばint型の配列を、全要素数9で定義するとき、
4
4
 
5
- 要素番号を0~9ではなく1~10で扱えるようにする方法は
5
+ 要素番号を0~8ではなく1~9で扱えるようにする方法は
6
6
 
7
- ありませんか?要素数を11で定義して0番目をシカトしろとか
7
+ ありませんか?要素数を10で定義して0番目をシカトしろとか
8
8
 
9
9
  一休さんみたいな話じゃなくて。
10
+
11
+
12
+
13
+ 数独解析のプログラムを書こうとしているのですが、
14
+
15
+ あるマスに数字を埋めることが可能かを判断するための
16
+
17
+ フラグ配列を定義する必要があります。数独は1~9の
18
+
19
+ いずれかの数字を埋めるパズルですが、例えばあるマスには
20
+
21
+ 8の数字を埋めることができない場合、8に該当するフラグを
22
+
23
+ ONにするというやり方にしようと考えています。
24
+
25
+
26
+
27
+ 9つの数字についてフラグを用意する場合、
28
+
29
+ 9つの要素数を持つ配列を用意するという発想になったんですが、
30
+
31
+ その場合0~8の要素番号で扱える配列になります。
32
+
33
+ この場合、8に該当するフラグならば要素番号が7のように、
34
+
35
+ 数字をnとすると配列の要素番号は(n - 1)になります。
36
+
37
+
38
+
39
+ じゃあそう書けよって言われそうですが、
40
+
41
+ 他人が見た時、ソースを編集するときに
42
+
43
+ 数字がnのときは要素番号もnといった対応のほうが
44
+
45
+ わかりやすいと思うんです。
46
+
47
+
48
+
49
+ これを実現しようとすると配列を10で定義して
50
+
51
+ 要素番号を0~9として扱えますが、最初の要素番号0の
52
+
53
+ メモリ領域が無駄になります。別に無駄になっても
54
+
55
+ 影響はないと言えばないです。ただ、無駄にしなくても
56
+
57
+ いい方法があるなら知ってみたいなと思ったので。
58
+
59
+
60
+
61
+ C言語であればマクロで解決できる問題です。
62
+
63
+ 例 : #define STATUS_NUMBER( ROW, COL, NUM ) array[ ( ROW - 1 ) ][ ( COL - 1 ) ][ ( NUM - 1 ) ]