Zahlen drucken

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Zahlen drucken

    Hi,
    habe ein Programm geschrieben, dass bei Eingabe einer natürlichen Zahl (von 1 bis 999), den Namen ausdruckt, z.B.: z=1, Name: eins, z=234, Name: zweihundertvierundreissig.

    Leider funktioniert das Programm aber noch nicht, und verlangt nach eine Main-Methode. Wie kann ich diese jetzt in das Programm implementieren?

    Quellcode

    1. public class natZahlen {
    2. public static void print(int n) {
    3. int hunderter = (n%1000) / 100;
    4. int zehner = (n%100) / 10;
    5. int einer = n%10;
    6. switch (einer) {
    7. case 0 :if(zehner==1)System.out.print("zehn");
    8. break;
    9. case 1 :
    10. switch (zehner) {
    11. case 0 :
    12. System.out.print("eins");
    13. break;
    14. case 1 :
    15. System.out.print("elf");
    16. break;
    17. default :
    18. System.out.print("einund");
    19. }
    20. break;
    21. case 2 :
    22. switch (zehner) {
    23. case 0 :
    24. System.out.print("zwei");
    25. break;
    26. case 1 :
    27. System.out.print("zwoelf");
    28. break;
    29. default :
    30. System.out.print("zweiund");
    31. }
    32. break;
    33. case 3 :
    34. switch (zehner) {
    35. case 0 :
    36. System.out.print("drei");
    37. break;
    38. case 1 :
    39. System.out.print("dreizehn");
    40. break;
    41. default :
    42. System.out.print("dreiund");
    43. }
    44. break;
    45. case 4 :
    46. switch (zehner) {
    47. case 0 :
    48. System.out.print("vier");
    49. break;
    50. case 1 :
    51. System.out.print("vierzehn");
    52. break;
    53. default :
    54. System.out.print("vierund");
    55. }
    56. break;
    57. case 5 :
    58. switch (zehner) {
    59. case 0 :
    60. System.out.print("fuenf");
    61. break;
    62. case 1 :
    63. System.out.print("fuenfzehn");
    64. break;
    65. default :
    66. System.out.print("fuenfund");
    67. }
    68. break;
    69. case 6 :
    70. switch (zehner) {
    71. case 0 :
    72. System.out.print("sechs");
    73. break;
    74. case 1 :
    75. System.out.print("sechzehn");
    76. break;
    77. default :
    78. System.out.print("sechsund");
    79. }
    80. break;
    81. case 7 :
    82. switch (zehner) {
    83. case 0 :
    84. System.out.print("sieben");
    85. break;
    86. case 1 :
    87. System.out.print("siebzehn");
    88. break;
    89. default :
    90. System.out.print("siebenund");
    91. }
    92. break;
    93. case 8 :
    94. switch (zehner) {
    95. case 0 :
    96. System.out.print("acht");
    97. break;
    98. case 1 :
    99. System.out.print("achtzehn");
    100. break;
    101. default :
    102. System.out.print("achtund");
    103. }
    104. break;
    105. case 9 :
    106. switch (zehner) {
    107. case 0 :
    108. System.out.print("neun");
    109. break;
    110. case 1 :
    111. System.out.print("neunzehn");
    112. break;
    113. default :
    114. System.out.print("neunund");
    115. }
    116. break;
    117. }
    118. switch (zehner) {
    119. case 2 :
    120. System.out.print("zwanzig");
    121. break;
    122. case 3 :
    123. System.out.print("dreissig");
    124. break;
    125. case 4 :
    126. System.out.print("vierzig");
    127. break;
    128. case 5 :
    129. System.out.print("fuenfzig");
    130. break;
    131. case 6 :
    132. System.out.print("sechzig");
    133. break;
    134. case 7 :
    135. System.out.print("siebzig");
    136. break;
    137. case 8 :
    138. System.out.print("achtzig");
    139. break;
    140. case 9 :
    141. System.out.print("neunzig");
    142. }
    143. switch (hunderter) {
    144. case 1 :
    145. System.out.print("Einhundert");
    146. break;
    147. case 2 :
    148. System.out.print("Zweihundert");
    149. break;
    150. case 3 :
    151. System.out.print("Dreihundert");
    152. break;
    153. case 4 :
    154. System.out.print("Vierhundert");
    155. break;
    156. case 5 :
    157. System.out.print("Fuenfhundert");
    158. break;
    159. case 6 :
    160. System.out.print("Sechshundert");
    161. break;
    162. case 7 :
    163. System.out.print("Siebenhundert");
    164. break;
    165. case 8 :
    166. System.out.print("Achthundert");
    167. break;
    168. case 9 :
    169. System.out.print("Neunhundert");
    170. }
    171. System.out.println();
    172. }
    173. }
    Alles anzeigen


    Danke schon mal!
  • Quellcode

    1. public class natZahlen {
    2. public static void main(String[] args) {
    3. print(100);
    4. }
    5. //.....
    6. }


    Aber du weißt schon, dass dein Code ziemlicher Overload ist, oder?
    ich sag nur

    Quellcode

    1. String s[] = {"Einhundert", "Zweihundert", "Dreihundert", "Vierhundert", "Fünfhundert",
    2. "Sechshundert", "Siebenhundert", "Achthundert", "Neunhundert"};
  • definitiv noch verbesserungswürdig, aber sicher besser als dein aktueller Code:

    Quellcode

    1. public class natZahlen {
    2. public static void main(String[] args) {
    3. print(100);
    4. }
    5. public static void print(int n) {
    6. String einer[] = { "", "ein", "zwei", "drei", "vier", "fünf", "sechs",
    7. "sieben", "acht", "neun" };
    8. String zehner[] = { "", "zehn", "zwanzig", "dreißig", "vierzig",
    9. "fünfzig", "sechzig", "siebzig", "achtzig", "neunzig" };
    10. String sonderfall[] = { "", "elf", "zwölf" };
    11. if (n >= 100) {
    12. int digit = n % 10;
    13. System.out.print(einer[(int) (n / 100)]);
    14. System.out.print("hundert");
    15. if (digit > 0) {
    16. System.out.print("und");
    17. print(n % 100);
    18. }
    19. } else if (n > 12) {
    20. int digit = n % 10;
    21. print(digit);
    22. if (digit > 0) {
    23. System.out.print("und");
    24. }
    25. System.out.print(zehner[(int) (n / 10)]);
    26. } else if (n > 10) {
    27. System.out.print(sonderfall[n % 10]);
    28. } else if (n < 10) {
    29. System.out.print(einer[n % 10]);
    30. }
    31. }
    32. }
    Alles anzeigen