Advertisement
Marisichka

Untitled

Oct 8th, 2021
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.50 KB | None | 0 0
  1. #include<iostream>
  2. #include<string>
  3.  
  4. #define SIZE 250
  5.  
  6. using namespace std;
  7.  
  8. struct LongNumber {
  9.     float digits[SIZE];
  10.     float length;
  11. };
  12.  
  13. int main() {
  14.     LongNumber a, c;
  15.     float delitel, length;
  16.  
  17.     string str, str1;
  18.  
  19.     for (int i = 0; i < SIZE; i++) {
  20.         a.digits[i] = 0;
  21.         c.digits[i] = 0;
  22.     }
  23.  
  24.     cin >> str;
  25.     for (int i = 0; i < str.length(); i++) {
  26.         a.digits[SIZE - str.length() + i] = str[i] - '0';
  27.     }
  28.  
  29.     cin >> delitel;
  30.  
  31.     int k = 0;
  32.     for (int i = 0; i < SIZE; i++) {
  33.         if (a.digits[i] == 0) {
  34.             k++;
  35.         }
  36.         else break;
  37.     }
  38.  
  39.     float ostatok = 0, ostatok2 = 0, b = 0, run = 0;
  40.     float n;
  41.     for (int i = k; i < SIZE; i++) {
  42.  
  43.         if (ostatok) {
  44.             b = ostatok * 10 + a.digits[i];
  45.             run = delitel;
  46.             while (b >= run) {
  47.                 ostatok2++;
  48.                 run = run + delitel;
  49.             }
  50.             c.digits[i] = ostatok2;
  51.             ostatok = b - (run - delitel);
  52.             ostatok2 = 0;
  53.         }
  54.         else {
  55.             if (ostatok == 0) {
  56.                 if (a.digits[i] < delitel) {
  57.                     ostatok = a.digits[i];
  58.                 }
  59.                 else {
  60.                     if (a.digits[i] >= delitel) {
  61.                         b = a.digits[i];
  62.                         run = delitel;
  63.                         while (b >= run) {
  64.                             ostatok2++;
  65.                             run = run + delitel;
  66.                         }
  67.                         c.digits[i] = ostatok2;
  68.                         ostatok = b - (run - delitel);
  69.                         ostatok2 = 0;
  70.                     }
  71.                 }
  72.             }
  73.         }
  74.     }
  75.  
  76.     k = 0;
  77.     for (int i = 0; i < SIZE; i++) {
  78.         if (c.digits[i] == 0) {
  79.             k++;
  80.         }
  81.         else break;
  82.     }
  83.  
  84.  
  85.     if (k == SIZE) {
  86.         cout << '0';
  87.     }
  88.     else {
  89.         for (int i = k; i < SIZE; i++) {
  90.             cout << c.digits[i];
  91.         }
  92.     }
  93.  
  94.     return 0;
  95.  
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement