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

質問編集履歴

1

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

2017/09/12 04:47

投稿

nvcpg_198
nvcpg_198

スコア25

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