Vla_DOS

Untitled

Feb 3rd, 2023
872
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.13 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <iomanip>
  4. #include <random>
  5. #include <algorithm>
  6.  
  7. using namespace std;
  8.  
  9. int countSymmetry(int n) {
  10.     int count = 0;
  11.     int n_copy = n;
  12.  
  13.     // визначаємо кількість значущих  цифр у числі
  14.     int len = 0;
  15.     while (n_copy > 0) {
  16.         n_copy /= 10;
  17.         len++;
  18.     }
  19.  
  20.     // рахуємо кількість пар цифр, що співпадають і розташовані симетрично відносно середини десяткового запису цього числа
  21.     for (int i = 0; i < len / 2; i++) {
  22.         int digit_1 = (n % (int)pow(10, i + 1)) / (int)pow(10, i);
  23.         int digit_2 = (n % (int)pow(10, len - i)) / (int)pow(10, len - i - 1);
  24.  
  25.         if (digit_1 == digit_2) {
  26.             count++;
  27.         }
  28.     }
  29.  
  30.     if (len % 2 == 1) {
  31.         // якщо деяка цифра стоїть посередині десяткового запису, її теж треба враховувати у парі з нею самою
  32.         count++;
  33.     }
  34.  
  35.     return count;
  36. }
  37.  
  38.  
  39. int main() {
  40.     int n;
  41.     cin >> n;
  42.     cout << "countSymmetry = " << countSymmetry(n);
  43.  
  44.     return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment