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

質問編集履歴

1

プログラムの設計ミスがあったため修正しました

2020/12/12 13:06

投稿

stzyang
stzyang

スコア6

title CHANGED
File without changes
body CHANGED
@@ -52,26 +52,40 @@
52
52
 
53
53
  private static String Calculation(String totalNumber,int number) {
54
54
  List<String> numberList = new ArrayList<String>();
55
- List<String> formulaList = new ArrayList<String>();
55
+ List<StringBuilder> formulaList = new ArrayList<StringBuilder>();
56
-
56
+ StringBuilder sb = new StringBuilder();
57
+
57
- for(int i = 0;i< String.valueOf(totalNumber).length();i++){
58
+ for(int i = 0;i< String.valueOf(number).length();i++){
58
- numberList.add(totalNumber.substring(i,i+1));
59
+ numberList.add(String.valueOf(number).substring(i,i+1));
59
60
  }
60
61
  int num1 = Integer.parseInt(numberList.get(0));
61
62
  int num2 = Integer.parseInt(numberList.get(1));
62
63
  int num3 = Integer.parseInt(numberList.get(2));
63
64
  int num4 = Integer.parseInt(numberList.get(3));
64
65
 
65
- //四則演算をここで行う
66
+ //ここで四則演算
66
67
  if(num1+num2+num3+num4==number) {
67
- formulaList.add(num1+"+"+num2+"+"+num3+"+"+num4);
68
+ sb.append(num1);
68
- }if(num1+num2+num3-num4==number) {
69
+ sb.append("+");
70
+ sb.append(num2);
69
- formulaList.add(num1+"+"+num2+"+"+num3+"-"+num4);
71
+ sb.append("+");
72
+ sb.append(num3);
73
+ sb.append("+");
74
+ sb.append(num4);
75
+ formulaList.add(sb);
70
76
  }
77
+ if(num1+num2+num3-num4==number) {
78
+ sb.append(num1);
79
+ sb.append("+");
80
+ sb.append(num2);
81
+ sb.append("+");
82
+ sb.append(num3);
83
+ sb.append("-");
84
+ sb.append(num4);
85
+ formulaList.add(sb); }
86
+ //以下同じ処理をすべての四則演算で行う
71
87
 
72
- //四則演算すべてのパターン書き込む
73
88
 
74
-
75
89
  return formulaList.toString();
76
90
  }
77
91
  ```