Advertisement
NelloRizzo

Da Numeri a Lettere

Nov 27th, 2018
396
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.75 KB | None | 0 0
  1. package corso.java;
  2.  
  3. public class Progam {
  4.  
  5.     // traduzione in lettere di un numero.
  6.     static void translate(int number) {
  7.         int pow = 0;
  8.         while (number > 19) {
  9.             // se è minore di 100
  10.             if (number < 100) {
  11.                 pow = 10;
  12.                 trans100(number);
  13.             }
  14.             // se è minore di 1000
  15.             else if (number < 1000) {
  16.                 pow = 100;
  17.                 trans1000(number);
  18.             }
  19.             // se è minore di 10000
  20.             else if (number < 10000) {
  21.                 pow = 1000;
  22.                 trans10000(number);
  23.             } // altrimenti stampo in cifre...
  24.             else {
  25.                 System.out.println(number);
  26.                 number = 0;
  27.             }
  28.             // 250 => 250 / 10 = 20 * 10 = 200 => 250 - 200 = 50
  29.             number -= (number / pow) * pow;
  30.         }
  31.         // se è minore di 20
  32.         if (number < 20) {
  33.             trans20(number);
  34.         }
  35.  
  36.         System.out.println();
  37.     }
  38.  
  39.     private static void trans10000(int n) {
  40.         int m = n / 1000;
  41.         if (m == 1)
  42.             System.out.print("mille");
  43.         else {
  44.             trans20(m);
  45.             System.out.print("mila");
  46.         }
  47.     }
  48.  
  49.     private static void trans1000(int n) {
  50.         int c = n / 100;
  51.         if (c > 1)
  52.             trans20(c);
  53.         System.out.print("cento");
  54.     }
  55.  
  56.     private static void trans100(int n) {
  57.         String[] numeri = { "venti", "trenta", "quaranta", "cinquanta", "sessanta", "settanta", "ottanta", "novanta" };
  58.         System.out.print(numeri[n / 10 - 2]);
  59.     }
  60.  
  61.     private static void trans20(int n) {
  62.         String[] numeri = { "uno", "due", "tre", "quattro", "cinque", "sei", "sette", "otto", "nove", "dieci", "undici",
  63.                 "dodici", "tredici", "quattordici", "qundici", "sedici", "diciassette", "diciotto", "diciannove" };
  64.         System.out.print(numeri[n - 1]);
  65.     }
  66.  
  67.     public static void main(String[] args) {
  68.         translate(5);
  69.         translate(15);
  70.         translate(31);
  71.         translate(105);
  72.         translate(999);
  73.         translate(1005);
  74.         translate(1999);
  75.         translate(1234);
  76.     }
  77.  
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement