Summary Files Commits Branches @commit @diff @stats
path: root / Java / Number_Names / src
diff options
context:
space:
mode:
Commite173839c44257d0187bb2ec087124db6e2ecde99 (patch)
Author
 Syndamia <kami02882@gmail.com>
2019-07-31 15:46:56 +0300
Committer
 Syndamia <kami02882@gmail.com>
2019-07-31 15:46:56 +0300
Files52eb84ab8f858f1fe437e24d6104a0bdd50d17e2 /Java/Number_Names/src
Self-learning-e173839c44257d0187bb2ec087124db6e2ecde99.tar
Self-learning-e173839c44257d0187bb2ec087124db6e2ecde99.tar.gz
Self-learning-e173839c44257d0187bb2ec087124db6e2ecde99.zip
Parenta48a6e1c302a5e90235a82e73517cd43f9c1432e (diff)
Optimised Number names code
1 files changed, 34 insertions, 53 deletions
-rw-r--r--Java/Number_Names/src/Program.java87
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");
+ 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.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;
+ 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();