fork(2) download
  1. #include <algorithm>
  2. #include <iostream>
  3. #include <map>
  4.  
  5. using namespace std;
  6.  
  7. void PrzydzielenieSkrotowDoRozmiaru(int rozmiar) {
  8.  
  9. if(rozmiar <= 6 && rozmiar >= 4)
  10. cout << "tys. ";
  11. else if (rozmiar <= 9 && rozmiar >= 7)
  12. cout << "mln. ";
  13. else if (rozmiar <= 12 && rozmiar >= 10)
  14. cout << "mld. ";
  15. else if (rozmiar == 13)
  16. cout << "bln. ";
  17. }
  18.  
  19. int main() {
  20.  
  21. map <char,string> setki;
  22. map <char,string> dziesiatki;
  23. map <char,string> nascie;
  24. map <char,string> jednosci;
  25.  
  26. jednosci['0']="";
  27. jednosci['1']="jeden";
  28. jednosci['2']="dwa";
  29. jednosci['3']="trzy";
  30. jednosci['4']="cztery";
  31. jednosci['5']="piec";
  32. jednosci['6']="szesc";
  33. jednosci['7']="siedem";
  34. jednosci['8']="osiem";
  35. jednosci['9']="dziewiec";
  36.  
  37. nascie['0']="dziesiec";
  38. nascie['1']="jedenascie";
  39. nascie['2']="dwanascie";
  40. nascie['3']="trzynascie";
  41. nascie['4']="czternascie";
  42. nascie['5']="pietnascie";
  43. nascie['6']="szesnascie";
  44. nascie['7']="siedemnascie";
  45. nascie['8']="osiemnascie";
  46. nascie['9']="dziewietnascie";
  47.  
  48. dziesiatki['2']="dwadziescia";
  49. dziesiatki['3']="trzydziesci";
  50. dziesiatki['4']="czterdziesci";
  51. dziesiatki['5']="piecdziesiat";
  52. dziesiatki['6']="szescdziesiat";
  53. dziesiatki['7']="siedemdziesiat";
  54. dziesiatki['8']="osiemdziesiat";
  55. dziesiatki['9']="dziewiecdziesiat";
  56.  
  57. setki['1']="sto";
  58. setki['2']="dwiescie";
  59. setki['3']="trzysta";
  60. setki['4']="czterysta";
  61. setki['5']="piecset";
  62. setki['6']="szescset";
  63. setki['7']="siedemset";
  64. setki['8']="osiemset";
  65. setki['9']="dziewiecset";
  66.  
  67. unsigned short liczbaTestow;
  68. string liczba;
  69. short rozmiar;
  70. short rzadWielkosciDlaGrupy;
  71.  
  72.  
  73. cin >> liczbaTestow;
  74. while(liczbaTestow--) {
  75. cin >> liczba;
  76. rozmiar = liczba.length();
  77.  
  78. do {
  79.  
  80. rzadWielkosciDlaGrupy = rozmiar % 3;
  81. if (liczba == "100000")
  82. {
  83. cout << "sto tys. ";
  84. break;
  85. }
  86. else if(liczba[0] == '0') {
  87. liczba.erase(liczba.begin());
  88. rozmiar--;
  89. } else {
  90.  
  91. switch(rzadWielkosciDlaGrupy) {
  92. case 0:
  93. cout << setki.find(liczba[0])->second << " ";
  94. break;
  95. case 2:
  96. if(liczba[0] == '1') {
  97. cout << nascie.find(liczba[1])->second << " ";
  98. PrzydzielenieSkrotowDoRozmiaru(rozmiar);
  99. rozmiar--;
  100. liczba.erase(liczba.begin());
  101. } else
  102. cout << dziesiatki.find(liczba[0]) -> second << " ";
  103. break;
  104.  
  105. case 1:
  106. cout << jednosci.find(liczba[0]) -> second << " ";
  107. PrzydzielenieSkrotowDoRozmiaru(rozmiar);
  108. break;
  109.  
  110. }
  111. rozmiar--;
  112. liczba.erase(liczba.begin());
  113. }
  114.  
  115. } while (rozmiar > 0);
  116. cout << endl;
  117. }
  118. return 0;
  119. }
  120.  
Success #stdin #stdout 0s 4268KB
stdin
Standard input is empty
stdout
Standard output is empty