Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.52 KB | None | 0 0
  1. #include<fstream>
  2. #include<iostream>
  3. #include <vector>
  4. #include <string>
  5. int stepen(int y, int r) {
  6. int z = y;
  7. for (int q = 2; q <= r; q++) {
  8. z = y * z;
  9. }
  10. if (r == 0) { return 1; }
  11. else { return z; }
  12. }/*функция степени*/
  13. int modul(int y) {
  14. if (y >= 0) { return y; }
  15. else { return -y; }
  16. }/*функция модуля*/
  17. using namespace std;
  18. int main()
  19. {
  20.  
  21. int N;
  22. ifstream fin("filename1.txt");
  23. ofstream fout("filename2.txt");
  24. while (!fin.eof()) {
  25. fin >> N;
  26. int g = 0;/*хождение по числу*/
  27. int N;/*наше число*/
  28. vector<long>Chislo;/*запихаем в вектор число*/
  29. int R = modul(N), k = 1;/*1)модуль 2)кол-во цифр*/
  30. while (R >= 10) {
  31. R /= 10;
  32. k++;
  33. }/*выясняем кол-во цифр*/
  34. R = modul(N);
  35. int s = 0;/*номер цифры*/
  36. while (k != 0) {
  37. int a = R % stepen(10, s + 1) / stepen(10, s);
  38. Chislo.insert(Chislo.begin() + 0, a);
  39. k--;
  40. s++;
  41. }/*пихаем в массив*/
  42. vector <const char*> ones{ "", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };/*единицы*/
  43. vector<const char*> tens{ "", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" };/*десятки*/
  44. vector <const char*> exceptions{ "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };/*исключения из десяток*/
  45. vector<const char*> big{ "", "hundred","thousand", "million", "billion" };/*большие числа*/
  46. if (N == 0) { fout << "zero"; }/*если ноль*/
  47. else
  48. {
  49. if (N < 0) { fout << "minus "; }
  50. while (Chislo.size() > 0) {
  51. if (Chislo.size() % 3 == 0) /*если 3 цифры*/
  52. {
  53. if (Chislo[g] != 0) { fout << ones[Chislo[g]] << " " << big[1] << " "; }
  54. if (Chislo[g + 1] == 1) { fout << exceptions[Chislo[g + 2]] << " "; }
  55. else if (Chislo[g + 1] == 0 && Chislo[g + 2] != 0) { fout << ones[Chislo[g + 2]] << " "; }
  56. else if (Chislo[g + 1] == 0 && Chislo[g + 2] == 0) { fout << ""; }
  57. else if (Chislo[g + 1] != 0 && Chislo[g + 2] != 0) { fout << tens[Chislo[g + 1]] << " " << ones[Chislo[g + 2]] << " "; }
  58. else { fout << tens[Chislo[g + 1]] << " "; }
  59. if ((Chislo[g] != 0 || Chislo[g + 1] != 0 || Chislo[g + 2] != 0) && (Chislo.size() - 3) / 3 == 0) { fout << big[0] << " "; }
  60. else if ((Chislo[g] != 0 || Chislo[g + 1] != 0 || Chislo[g + 2] != 0) && (Chislo.size() - 3) / 3 == 1) { fout << big[2] << " "; }
  61. else if ((Chislo[g] != 0 || Chislo[g + 1] != 0 || Chislo[g + 2] != 0) && (Chislo.size() - 3) / 3 == 2) { fout << big[3] << " "; }
  62. else if ((Chislo[g] != 0 || Chislo[g + 1] != 0 || Chislo[g + 2] != 0) && (Chislo.size() - 3) / 3 == 2) { fout << big[4] << " "; }
  63. }
  64. else if (Chislo.size() % 3 == 2) /*если 2 цифры*/
  65. {
  66. if (Chislo[g] == 1) { fout << exceptions[Chislo[g + 1]] << " "; }
  67. else { fout << tens[Chislo[g]] << " " << ones[Chislo[g + 1]] << " "; }
  68. if ((Chislo[g] != 0 || Chislo[g + 1] != 0 || Chislo[g + 2] != 0) && (Chislo.size() - 2) / 3 == 0) { fout << big[0] << " "; }
  69. else if ((Chislo[g] != 0 || Chislo[g + 1] != 0 || Chislo[g + 2] != 0) && (Chislo.size() - 2) / 3 == 1) { fout << big[2] << " "; }
  70. else if ((Chislo[g] != 0 || Chislo[g + 1] != 0 || Chislo[g + 2] != 0) && (Chislo.size() - 2) / 3 == 2) { fout << big[3] << " "; }
  71. else if ((Chislo[g] != 0 || Chislo[g + 1] != 0 || Chislo[g + 2] != 0) && (Chislo.size() - 2) / 3 == 2) { fout << big[4] << " "; }
  72. }
  73. else /*если 1 цифры*/
  74. {
  75. fout << ones[Chislo[g]] << " ";
  76. if ((Chislo[g] != 0 || Chislo[g + 1] != 0 || Chislo[g + 2] != 0) && (Chislo.size() - 1) / 3 == 0) { fout << big[0] << " "; }
  77. else if ((Chislo[g] != 0 || Chislo[g + 1] != 0 || Chislo[g + 2] != 0) && (Chislo.size() - 1) / 3 == 1) { fout << big[2] << " "; }
  78. else if ((Chislo[g] != 0 || Chislo[g + 1] != 0 || Chislo[g + 2] != 0) && (Chislo.size() - 1) / 3 == 2) { fout << big[3] << " "; }
  79. else if ((Chislo[g] != 0 || Chislo[g + 1] != 0 || Chislo[g + 2] != 0) && (Chislo.size() - 1) / 3 == 2) { fout << big[4] << " "; }
  80. }
  81. if (Chislo.size() % 3 == 0)
  82. {
  83. Chislo.erase(Chislo.begin());
  84. Chislo.erase(Chislo.begin());
  85. Chislo.erase(Chislo.begin());
  86. }/*Если 3 числа, то убираем 3 в начале*/
  87. else if (Chislo.size() % 3 == 2)
  88. {
  89. Chislo.erase(Chislo.begin());
  90. Chislo.erase(Chislo.begin());
  91. }/*Если 2 числа, то убираем 2 в начале*/
  92. else { Chislo.erase(Chislo.begin()); }/*Если 1 число, то убираем 1 в начале*/
  93. }
  94. }
  95. }
  96. fin.close();
  97. fout.close();
  98. return 0;
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement