fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. try {
  13.  
  14. int nrOfTests = Integer.parseInt(br.readLine());
  15.  
  16. for( int i =0; i< nrOfTests; i++) {
  17. String[] tab = br.readLine().split(" ");
  18. System.out.println( numberInWords( tab[0] ) );
  19. }
  20.  
  21. br.close();
  22. } catch (Exception e) { System.out.println("jakis blad"); }
  23.  
  24. }
  25.  
  26.  
  27. public static String numberInWords( String strN ) {
  28. String result="";
  29.  
  30. long l1 = Long.parseLong( strN );
  31.  
  32. long lBilion = l1 / 1000000000000L;
  33. long lMiliard = ( l1 -lBilion*1000000000000L ) / 1000000000;
  34. long lMilion = ( l1 -lBilion*1000000000000L - lMiliard* 1000000000 ) / 1000000;
  35. long lTysiac = ( l1 -lBilion*1000000000000L - lMiliard* 1000000000 - lMilion *1000000 ) / 1000;
  36. long lReszta = l1 -lBilion*1000000000000L - lMiliard* 1000000000 - lMilion *1000000 - lTysiac*1000;
  37.  
  38. if ( lBilion>0 ) {
  39. result += from1to1000( Integer.parseInt( lBilion+"" ) ) + " bln. ";
  40. }
  41.  
  42. if ( lMiliard>0 ) {
  43. result += from1to1000( Integer.parseInt( lMiliard+"" ) ) + " mld. ";
  44. }
  45.  
  46. if ( lMilion >0 ) {
  47. result += from1to1000( Integer.parseInt( lMilion+"") ) + " mln. ";
  48. }
  49.  
  50. if ( lTysiac >0 ) {
  51. result += from1to1000( Integer.parseInt( lTysiac+"" ) ) + " tys. ";
  52. }
  53.  
  54. if ( lReszta>0 ) {
  55. result += from1to1000( Integer.parseInt( lReszta+"" ) );
  56. }
  57.  
  58. return result;
  59. }
  60.  
  61.  
  62.  
  63. public static String from1to1000(int n) {
  64. int n100 = n/100;
  65. int n10 = (n - n100 *100) /10;
  66. int n1 = (n - n100*100 - n10*10);
  67.  
  68. String result="";
  69.  
  70. if ( n100>0 )
  71. switch ( n100 ) {
  72. case 1 : result = "sto"; break;
  73. case 2 : result = "dwiescie"; break;
  74. case 3 : result = "trzysta"; break;
  75. case 4 : result = "czterysta"; break;
  76. case 5 : result = "piecset"; break;
  77. case 6 : result = "szecset"; break;
  78. case 7 : result = "siedemset"; break;
  79. case 8 : result = "osiemset"; break;
  80. case 9 : result = "dziewiecset"; break;
  81. default : break;
  82. }
  83.  
  84. if ( n10>1 ) {
  85. if ( n100>0 ) result += " ";
  86. switch ( n10 ) {
  87. case 2 : result += "dwadziescia"; break;
  88. case 3 : result += "trzydziesci"; break;
  89. case 4 : result += "czterdziesci"; break;
  90. case 5 : result += "piecdziesiat"; break;
  91. case 6 : result += "szecdziesiat"; break;
  92. case 7 : result += "siedemdziesiat"; break;
  93. case 8 : result += "osiemdziesiat"; break;
  94. case 9 : result += "dziewiecdziesiat"; break;
  95. default : break;
  96. }
  97. }
  98.  
  99. if ( n10 == 1 ) {
  100. if ( n100>0 ) result += " ";
  101. switch ( n1 ) {
  102. case 0 : result += "dziesiec"; break;
  103. case 1 : result += "jedynascie"; break;
  104. case 2 : result += "dwanascie"; break;
  105. case 3 : result += "trzynascie"; break;
  106. case 4 : result += "czternascie"; break;
  107. case 5 : result += "pietnascie"; break;
  108. case 6 : result += "szesnascie"; break;
  109. case 7 : result += "siedemnascie"; break;
  110. case 8 : result += "osiemnascie"; break;
  111. case 9 : result += "dziewietnascie"; break;
  112. default : break;
  113. }
  114. }
  115.  
  116. if ( n10 != 1 ) {
  117. if ( n10>0 ) result += " ";
  118. switch ( n1 ) {
  119. case 1 : result += "jeden"; break;
  120. case 2 : result += "dwa"; break;
  121. case 3 : result += "trzy"; break;
  122. case 4 : result += "cztery"; break;
  123. case 5 : result += "piec"; break;
  124. case 6 : result += "szesc"; break;
  125. case 7 : result += "siedem"; break;
  126. case 8 : result += "osiem"; break;
  127. case 9 : result += "dziewiec"; break;
  128. default : break;
  129. }
  130. }
  131.  
  132. return result;
  133. }
  134.  
  135. }
Success #stdin #stdout 0.16s 37332KB
stdin
5
1
12
345
1459
123456789
stdout
jeden
dwanascie
trzysta czterdziesci piec
jeden tys. czterysta piecdziesiat dziewiec
sto dwadziescia trzy mln. czterysta piecdziesiat szesc tys. siedemset osiemdziesiat dziewiec