Advertisement
desislava_shunina

Task_3

Oct 23rd, 2022
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.82 KB | Source Code | 0 0
  1. #include <iostream>
  2. int main() {
  3.     int num;
  4.     int rs_num = 0; //"дясната страна" на числото, ако го гледаме спрямо средната му цифра/срредните му две цифри;
  5.     std::cin >> num;
  6.     int digits = 0;
  7.     for (int copyOfNum = num; copyOfNum != 0; copyOfNum /= 10) {
  8.         digits++;
  9.     }
  10.     //Разглеждаме първи случай за четен брой цифри, в който
  11.     //ще отделим дясна и лява част на числото и ще махнем 2 цифри.
  12.     if (digits % 2 == 0) {
  13.         for (int i = 1; i <digits/2; i++) {
  14.             int sum = num % 10;
  15.             for (int k = 2; k <= i; k++) {
  16.                 sum *= 10;
  17.             }
  18.             rs_num += sum;
  19.             num = num / 10;
  20.         }
  21.         num /= 100; //делим на 100, за да махнем средните 2 цифри.
  22.  
  23.         //Вече имаме лява страна на числото (num) и дясна (rs_num).
  24.         //Остава да умножим лявата по 10 на степен броят цифри/2 -1
  25.         //(например при 4 цифри имаме 1 на степен 4/2-1=1).
  26.         digits /= 2;
  27.         for (int k = 1; k < digits; k++) {
  28.             num *= 10;
  29.         }
  30.     }
  31.     //Аналогично постъпваме при нечетен брой цифри, като тук махаме само една цифра.
  32.     else {
  33.         for (int i = 1; i <digits / 2 + 1; i++) {
  34.             int sum = num % 10;
  35.             for (int k = 2; k <= i; k++) {
  36.                 sum *= 10;
  37.             }
  38.             rs_num += sum;
  39.             num = num / 10;
  40.         }
  41.         num /= 10; //делим, за да махнем средната цифра.
  42.         digits /= 2;
  43.         for (int k = 1; k <= digits; k++) {
  44.             num *= 10;
  45.         }
  46.     }
  47.     num += rs_num;  //събираме лява и дясна част и получаваме новото число.
  48.     std::cout << num << " " << num + 1;
  49.     return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement