diff options
| author | Syndamia <kami02882@gmail.com> | 2019-07-31 15:46:56 +0300 |
|---|---|---|
| committer | Syndamia <kami02882@gmail.com> | 2019-07-31 15:46:56 +0300 |
| commit | e173839c44257d0187bb2ec087124db6e2ecde99 (patch) | |
| tree | 52eb84ab8f858f1fe437e24d6104a0bdd50d17e2 /Java | |
| parent | a48a6e1c302a5e90235a82e73517cd43f9c1432e (diff) | |
| download | Self-learning-e173839c44257d0187bb2ec087124db6e2ecde99.tar Self-learning-e173839c44257d0187bb2ec087124db6e2ecde99.tar.gz Self-learning-e173839c44257d0187bb2ec087124db6e2ecde99.zip | |
Optimised Number names code
Diffstat (limited to 'Java')
| -rw-r--r-- | Java/Number_Names/out/production/Number_Names/Program.class | bin | 4939 -> 5161 bytes | |||
| -rw-r--r-- | Java/Number_Names/src/Program.java | 89 |
2 files changed, 35 insertions, 54 deletions
diff --git a/Java/Number_Names/out/production/Number_Names/Program.class b/Java/Number_Names/out/production/Number_Names/Program.class Binary files differindex 20d05f5..90c27c9 100644 --- a/Java/Number_Names/out/production/Number_Names/Program.class +++ b/Java/Number_Names/out/production/Number_Names/Program.class diff --git a/Java/Number_Names/src/Program.java b/Java/Number_Names/src/Program.java index ed9ef79..6dabf73 100644 --- a/Java/Number_Names/src/Program.java +++ b/Java/Number_Names/src/Program.java @@ -47,63 +47,44 @@ public class Program { } name.append(SmallNumberName((int)curr_num)); + boolean to_determine = true; switch (i) { - case 1: - if (number_parts.get(1) != 0) { - name.append(" thousand"); - - if (number_parts.get(0) != 0) { - if (number_parts.get(0) / 100 == 0) name.append(" and "); - else name.append(", "); - } - } break; - - case 2: - if (number_parts.get(2) != 0) { - name.append(" million"); - - if (number_parts.get(0) != 0 || number_parts.get(1) != 0) { - if (number_parts.get(0) / 100 == 0) name.append(" and "); - else name.append(", "); - } - } break; - - case 3: - if (number_parts.get(3) != 0) { - name.append(" milliard"); - - if (number_parts.get(0) != 0 || number_parts.get(1) != 0 || number_parts.get(2) != 0) { - if (number_parts.get(0) / 100 == 0) name.append(" and "); - else name.append(", "); - } - } break; - case 4: - if (number_parts.get(4) != 0) { - name.append(" billion"); - - if (number_parts.get(0) != 0 || number_parts.get(1) != 0 || number_parts.get(2) != 0 || number_parts.get(3) != 0) { - if (number_parts.get(0) / 100 == 0) name.append(" and "); - else name.append(", "); - } - } break; - case 5: - if (number_parts.get(5) != 0) { - name.append(" billiard"); - - if (number_parts.get(0) != 0 || number_parts.get(1) != 0 || number_parts.get(2) != 0 || number_parts.get(3) != 0 || number_parts.get(4) != 0) { - if (number_parts.get(0) / 100 == 0) name.append(" and "); - else name.append(", "); - } - } break; case 6: - if (number_parts.get(6) != 0) { + if (number_parts.get(6) != 0) { //to_determine is always true when it reaches here name.append(" trillion"); - - if (number_parts.get(0) != 0 || number_parts.get(1) != 0 || number_parts.get(2) != 0 || number_parts.get(3) != 0 || number_parts.get(4) != 0 || number_parts.get(5) != 0) { - if (number_parts.get(0) / 100 == 0) name.append(" and "); - else name.append(", "); - } - } break; + to_determine = false; + } + case 5: + if (number_parts.get(5) != 0 && to_determine) { + name.append(" billiard"); + to_determine = false; + } + case 4: + if (number_parts.get(4) != 0 && to_determine) { + name.append(" billion"); + to_determine = false; + } + case 3: + if (number_parts.get(3) != 0 && to_determine) { + name.append(" milliard"); + to_determine = false; + } + case 2: + if (number_parts.get(2) != 0 && to_determine) { + name.append(" million"); + to_determine = false; + } + case 1: + if (number_parts.get(1) != 0 && to_determine) { + name.append(" thousand"); + to_determine = false; + } + + if (number_parts.subList(0, i).stream().anyMatch(n -> n != 0) && !to_determine) { + if (number_parts.get(0) / 100 == 0) name.append(" and "); + else name.append(", "); + } + break; } } return name.toString(); |
