fork(2) download
  1. #include <iostream>
  2. #include <map>
  3. #include <string>
  4. #include<vector>
  5. using namespace std;
  6.  
  7. void PodzialLiczbyNaGrupy(vector<string> &GrupyCyfr,string liczba)
  8. {
  9. int dlugosc=liczba.length();
  10. string TrzyCyfry;
  11.  
  12. while(dlugosc>3)
  13. {
  14. TrzyCyfry=liczba.substr(dlugosc-3,dlugosc-1);
  15. liczba.erase(dlugosc-3,dlugosc-1);
  16. GrupyCyfr.push_back(TrzyCyfry);
  17. dlugosc=dlugosc-3;
  18. }
  19. GrupyCyfr.push_back(liczba);
  20. }
  21.  
  22. int main()
  23. {
  24. map <string,string> jednostki;
  25. map<string,string> nastki;
  26. map<string,string> dziesiatki;
  27. map<string,string> setki;
  28. jednostki["1"]="jeden";
  29. jednostki["2"]="dwa";
  30. jednostki["3"]="trzy";
  31. jednostki["4"]="cztery";
  32. jednostki["5"]="piec";
  33. jednostki["6"]="szesc";
  34. jednostki["7"]="siedem";
  35. jednostki["8"]="osiem";
  36. jednostki["9"]="dziewiec";
  37.  
  38. nastki["10"]="dziesiec";
  39. nastki["11"]="jedenascie";
  40. nastki["12"]="dwanascie";
  41. nastki["13"]="trzynascie";
  42. nastki["14"]="czternascie";
  43. nastki["15"]="pietnascie";
  44. nastki["16"]="szesnascie";
  45. nastki["17"]="siedemnascie";
  46. nastki["18"]="osiemnascie";
  47. nastki["19"]="dziewietnascie";
  48.  
  49. dziesiatki["2"]="dwadziescia";
  50. dziesiatki["3"]="trzydziesci";
  51. dziesiatki["4"]="czterdziesci";
  52. dziesiatki["5"]="piecdziesiat";
  53. dziesiatki["6"]="szescdziesiat";
  54. dziesiatki["7"]="siedemdziesiat";
  55. dziesiatki["8"]="osiemdziesiat";
  56. dziesiatki["9"]="dziewiecdziesiat";
  57.  
  58. setki["1"]="sto";
  59. setki["2"]="dwiescie";
  60. setki["3"]="trzysta";
  61. setki["4"]="czterysta";
  62. setki["5"]="piecset";
  63. setki["6"]="szescset";
  64. setki["7"]="siedemset";
  65. setki["8"]="osiemset";
  66. setki["9"]="dziewiecset";
  67.  
  68. map<int,string> rzedy;
  69. rzedy[1]="tys.";
  70. rzedy[2]="mln.";
  71. rzedy[3]="mld.";
  72. rzedy[4]="bln.";
  73.  
  74. int t;
  75. cin>>t;
  76. for(int z=0; z<t; z++)
  77. {
  78. string liczba;
  79. cin>>liczba;
  80. int dlugosc=liczba.length();
  81. vector<string> GrupyCyfr;
  82. vector<string>::iterator poczatek=GrupyCyfr.begin();
  83.  
  84. PodzialLiczbyNaGrupy(GrupyCyfr,liczba);
  85.  
  86. string cyfry;
  87. string PojedynczaCyfra;
  88. int rozmiar=GrupyCyfr.size();
  89. int x=1;
  90. for(int i=rozmiar-1; i>=0; i--)
  91. {
  92. cyfry=GrupyCyfr.at(i);
  93. int iteracja=cyfry.length();
  94. int j=0;
  95. while(iteracja>0)
  96. {
  97. if(iteracja==3)
  98. {
  99. PojedynczaCyfra=cyfry[j];
  100. if(PojedynczaCyfra=="0")
  101. {
  102. j++;
  103. iteracja--;
  104. }
  105. else
  106. {
  107. cout<<setki.find(PojedynczaCyfra)->second<<" ";
  108. iteracja--;
  109. j++;
  110. }
  111. }
  112. if(iteracja==2)
  113. {
  114. PojedynczaCyfra=cyfry[j];
  115. if(PojedynczaCyfra=="1")
  116. {
  117. PojedynczaCyfra=PojedynczaCyfra+cyfry[j+1];
  118. cout<<nastki.find(PojedynczaCyfra)->second<<" ";
  119. iteracja=0;
  120. }
  121. else if(PojedynczaCyfra=="0")
  122. {
  123. j++;
  124. iteracja--;
  125. }
  126. else
  127. {
  128. cout<<dziesiatki.find(PojedynczaCyfra)->second<<" ";
  129. iteracja--;
  130. j++;
  131. }
  132. }
  133. if(iteracja==1)
  134. {
  135. PojedynczaCyfra=cyfry[j];
  136. if(PojedynczaCyfra=="0")
  137. {
  138. iteracja=0;
  139. }
  140. else
  141. {
  142. cout<<jednostki.find(PojedynczaCyfra)->second<<" ";
  143. iteracja=0;
  144. }
  145. }
  146. }
  147. if(cyfry!="000")
  148. {
  149. cout<<rzedy.find(rozmiar-x)->second<<" ";
  150. }
  151. x++;
  152. }
  153. cout<<endl;
  154. }
  155. }
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
Success #stdin #stdout 0s 4548KB
stdin
Standard input is empty
stdout
Standard output is empty