質問編集履歴

10

ddd

2020/10/02 15:28

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -290,9 +290,9 @@
290
290
 
291
291
  (右の計算結果B) = 10 - (1の位を剰余算);
292
292
 
293
- a / 10 % 10
293
+ // (暗号化計算式1⃣) (暗号化計算式2⃣)
294
-
294
+
295
- (暗号化した予約受付番号) = (右の計算結果A) + (右の計算結果B);
295
+ (暗号化した予約受付番号) = (1の位を剰余算) + ((右の計算結果A) + (右の計算結果B));
296
296
 
297
297
 
298
298
 

9

dd

2020/10/02 15:28

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -326,7 +326,7 @@
326
326
 
327
327
  }
328
328
 
329
- ➐ int anngoukaYoyakuNo = totalA + totalB;
329
+ ➐ int anngoukaYoyakuNo = lastKeta + (totalA + totalB);
330
330
 
331
331
  return new String(anngoukaYoyakuNo);
332
332
 

8

ddd

2020/10/02 15:22

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -208,11 +208,9 @@
208
208
 
209
209
           条件式(if)
210
210
 
211
+          計算式1 (掛け算した結果の1の位の剰余算)
212
+
211
-          計算式 (掛け算、足し算、1の位と10の位の剰余算、引き算)
213
+          計算式 (掛け算、足し算、1の位と10の位の剰余算、引き算)
212
-
213
-          計算式2 (掛け算した結果の1の位の剰余算)
214
-
215
-
216
214
 
217
215
  3-1、 大きく6項目
218
216
 

7

444

2020/10/02 15:05

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -194,7 +194,7 @@
194
194
 
195
195
   扱うデータ : 予約受付番号データ
196
196
 
197
-          暗号した予約受付番号データ
197
+          暗号した予約受付番号データ
198
198
 
199
199
           暗号化するための計算ロジックデータ
200
200
 

6

333

2020/10/02 14:58

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -345,3 +345,5 @@
345
345
  エラー  →  トークンに構文エラーがあります。これらのトークンを削除してください
346
346
 
347
347
  理解と分解という点でこちらの流れですが、改善点などアドバイス頂きたいですm(__)m
348
+
349
+ 文が長くなってしまい申し訳ありません。。

5

えええ

2020/10/02 14:53

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -175,3 +175,173 @@
175
175
  この理解と分解の仕方は検討ちがいでしょうか?
176
176
 
177
177
  アドバイス頂けないでしょうか?
178
+
179
+
180
+
181
+ 分解
182
+
183
+ 1、
184
+
185
+ 予約受付番号を暗号化計算ロジックにより暗号化し、他者からの不正なアクセスや情報漏洩から守るための
186
+
187
+ セキュリティ対策をする。
188
+
189
+
190
+
191
+
192
+
193
+ 2、
194
+
195
+  扱うデータ : 予約受付番号データ
196
+
197
+          暗号した予約受付番号データ
198
+
199
+          暗号化するための計算ロジックデータ
200
+
201
+
202
+
203
+  機能    : 繰り返し(for)
204
+
205
+          型の変換  //機能として入れていいのか不明
206
+
207
+          代入    //機能として入れていいのか不明
208
+
209
+          条件式(if)
210
+
211
+          計算式1 (掛け算、足し算、1の位と10の位の剰余算、引き算)
212
+
213
+          計算式2 (掛け算した結果の1の位の剰余算)
214
+
215
+
216
+
217
+ 3-1、 大きく6項目
218
+
219
+ ➊  ・引数(予約受付番号データ)
220
+
221
+ ➋  ・for(1つづつ予約受付番号データの数字を取り出す)
222
+
223
+ ➌  ・(予約受付番号データ)×(暗号化するための計算ロジックデータ)
224
+
225
+ ➍  ・掛け算した値の合計を求める
226
+
227
+ ➎   (暗号化計算式1⃣)
228
+
229
+    ・(掛け算した値の1の位のみ並べる) = (取り出した予約受付番号データ)×(暗号化するための計算ロジックデータ);
230
+
231
+ ➏   (暗号化計算式2⃣)
232
+
233
+      ・合計した値の1の位を剰余算する
234
+
235
+         10引く(1の位を剰余算した値)
236
+
237
+         もし0なら0とする
238
+
239
+      ・合計した値の10の位を剰余算する
240
+
241
+         10引く(10の位を剰余算した値)
242
+
243
+         もし0なら0とする
244
+
245
+ ➐   ・(暗号化計算式1⃣)と(暗号化計算式2⃣)を結合する
246
+
247
+
248
+
249
+ 3-2、 6項目の細分化
250
+
251
+ ➊  public String method(予約受付番号データ){
252
+
253
+    //char配列の箱で受け取る
254
+
255
+ char[] (予約受付番号データを入れる箱) = (予約受付番号データ);
256
+
257
+ ➋  //(予約受付番号データを入れる箱)から1つづつ数字を取り出す
258
+
259
+    for((予約受付番号データを入れる箱)から1つづつ数字を取り出す)
260
+
261
+ ➌➍ //(取り出した予約受付番号データ)×(暗号化するための計算ロジックデータ)
262
+
263
+    (掛け算した値の合計) = (取り出した予約受付番号データ)×(暗号化するための計算ロジックデータ);
264
+
265
+ ➎  //暗号化計算式1⃣  
266
+
267
+  (掛け算した値の1の位のみ並べる) = (取り出した予約受付番号データ)×(暗号化するための計算ロジックデータ);
268
+
269
+ ➏  //暗号化計算式2⃣ 
270
+
271
+    //合計した値の1の位を剰余算する
272
+
273
+ (1の位を剰余算) = (掛け算した値の合計) % 10;
274
+
275
+       // もし0の場合は0とする
276
+
277
+        if( (右の計算結果) != 0);
278
+
279
+ // 10からその値を引く
280
+
281
+ (右の計算結果A) = 10 - (1の位を剰余算);
282
+
283
+    //合計した値の1の位を剰余算する
284
+
285
+ (10の位を剰余算) = (掛け算した値の合計) / 10 % 10;
286
+
287
+       // もし0の場合は0とする
288
+
289
+        if( (右の計算結果) != 0);
290
+
291
+ // 10からその値を引く
292
+
293
+ (右の計算結果B) = 10 - (1の位を剰余算);
294
+
295
+ ➐ a / 10 % 10
296
+
297
+ (暗号化した予約受付番号) = (右の計算結果A) + (右の計算結果B);
298
+
299
+
300
+
301
+ 3-3 コードのみ
302
+
303
+ ➊  public String test(String inData){
304
+
305
+ int[] mul = { 1, 3, 7, 9, 7, 3, 1, 3, 9, 7, 1 };
306
+
307
+ char[] yoyakuNo = inData.toCharArray();
308
+
309
+ ➋ for(int i=0; i<yoyakuNo; i++)
310
+
311
+ ➌➍ int kaketaTotal= yoyakuNo × mul;
312
+
313
+ ➎ int lastKeta = (yoyakuNo × mul) % 10;
314
+
315
+ ➏ totalA = kaketaTotal % 10;
316
+
317
+ if(total != 0){
318
+
319
+ 10 - total;
320
+
321
+ }
322
+
323
+ totalB = kaketaTotal / 10 % 10;
324
+
325
+ if(total != 0){
326
+
327
+ 10 - total;
328
+
329
+ }
330
+
331
+ ➐ int anngoukaYoyakuNo = totalA + totalB;
332
+
333
+ return new String(anngoukaYoyakuNo);
334
+
335
+ }
336
+
337
+
338
+
339
+
340
+
341
+ 理解と分解のアドバイスの元修正いたしましたが、コードが短くなった気がしましたが、
342
+
343
+ エラーが出てしまい、動作まではいきませんでした。
344
+
345
+ エラー  →  トークンに構文エラーがあります。これらのトークンを削除してください
346
+
347
+ 理解と分解という点でこちらの流れですが、改善点などアドバイス頂きたいですm(__)m

4

33

2020/10/02 14:52

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -170,7 +170,7 @@
170
170
 
171
171
  ```
172
172
 
173
- 理解と分解を頂いたアドバイスを元に自分なりに作成してみたのですが、
173
+ 理解と分解を頂いたアドバイスを元に自分なりに作成してみたのですが、ものすごく長いコードになってしまいました。
174
174
 
175
175
  この理解と分解の仕方は検討ちがいでしょうか?
176
176
 

3

2222d

2020/09/30 15:53

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -69,3 +69,109 @@
69
69
 
70
70
 
71
71
  上記の計算式を実現するにはどうしたらいいか教えて頂きたいです。
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+ ```Java
80
+
81
+ public class test11 {
82
+
83
+
84
+
85
+ public static void main(String[] args) {
86
+
87
+ // TODO 自動生成されたメソッド・スタブ
88
+
89
+
90
+
91
+ class nouNum {
92
+
93
+ //引数で"20092812345"(inData)を受け取る
94
+
95
+ public String test(String inData){
96
+
97
+ //引数で受け取る変数をchar[]で作成する
98
+
99
+ char[] no02 = inData.toCharArray();
100
+
101
+ //no02の値の桁を1桁づつ取り出して掛けるための配列の変数を作成する
102
+
103
+ int[] mul = { 1, 3, 7, 9, 7, 3, 1, 3, 9, 7, 1 };
104
+
105
+ //引数の値の11桁目まで計算するための変数を作成する。
106
+
107
+ int n = Math.min(no02.length, 11);
108
+
109
+ //引数の値と1文字づつ取得した桁に対して掛けた値の合計値を保持するための変数を作成する
110
+
111
+ int total = 0;
112
+
113
+ //引数の値を1文字づつ取り出す
114
+
115
+ for (int i = 0; i < n; i++)
116
+
117
+ //数字を数値に変換して掛けたものを配列に入れる
118
+
119
+ total = (char)((no02[i] - '0') * mul[i] + '0');
120
+
121
+ //掛けた値の1の位の値を入れる変数の箱を作成する
122
+
123
+ char[] no03 = (char)((no02[i]- '0') mul[i] % 10 + '0');
124
+
125
+ //合計から10の位を取り出して10からその値を引いた値にする
126
+
127
+ int a = total.getNumbericValue(i);
128
+
129
+ //10の位を取り出す
130
+
131
+ int a01 = a / 10 % 10;
132
+
133
+ //ただし10は変換しない
134
+
135
+ if(a01 != 0) a01 = 10 -a01;
136
+
137
+ //合計から1の位を取り出し10からその値を引いた値にする
138
+
139
+ int b = total.getNumbericValue(i);
140
+
141
+ //1の位を取り出す
142
+
143
+ int b01 = total % 10;
144
+
145
+ //ただし0は変換しない
146
+
147
+ if(b01 != 0) b01 = 10 -b01;
148
+
149
+ //掛けた値の1の位だけ表示した値をint型に変換する
150
+
151
+ int c = no03.getNumbericValue(i);
152
+
153
+ //returnしたい値の変数の箱を作る
154
+
155
+ int Num01 = c + a01 + b01;
156
+
157
+
158
+
159
+ return String.valueOf(Num01);
160
+
161
+ }
162
+
163
+ }
164
+
165
+
166
+
167
+ }
168
+
169
+ }
170
+
171
+ ```
172
+
173
+ 理解と分解を頂いたアドバイスを元に自分なりに作成してみたのですが、
174
+
175
+ この理解と分解の仕方は検討ちがいでしょうか?
176
+
177
+ アドバイス頂けないでしょうか?

2

ccc

2020/09/30 15:44

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -60,7 +60,7 @@
60
60
 
61
61
                                2 + 0 + 0 + 81 + 14 + 24 + 1 + 6 + 27 + 28 +5 = 188
62
62
 
63
- 184 → 百の位は無視する。
63
+ 188 → 百の位は無視する。
64
64
 
65
65
                                    十の位はマイナス10する。
66
66
 

1

dfsd

2020/09/30 04:34

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -65,3 +65,7 @@
65
65
                                    十の位はマイナス10する。
66
66
 
67
67
                                    一の位はマイナス10する。
68
+
69
+
70
+
71
+ 上記の計算式を実現するにはどうしたらいいか教えて頂きたいです。