Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- int main() {
- int num;
- int rs_num = 0; //"дясната страна" на числото, ако го гледаме спрямо средната му цифра/срредните му две цифри;
- std::cin >> num;
- int digits = 0;
- for (int copyOfNum = num; copyOfNum != 0; copyOfNum /= 10) {
- digits++;
- }
- //Разглеждаме първи случай за четен брой цифри, в който
- //ще отделим дясна и лява част на числото и ще махнем 2 цифри.
- if (digits % 2 == 0) {
- for (int i = 1; i <digits/2; i++) {
- int sum = num % 10;
- for (int k = 2; k <= i; k++) {
- sum *= 10;
- }
- rs_num += sum;
- num = num / 10;
- }
- num /= 100; //делим на 100, за да махнем средните 2 цифри.
- //Вече имаме лява страна на числото (num) и дясна (rs_num).
- //Остава да умножим лявата по 10 на степен броят цифри/2 -1
- //(например при 4 цифри имаме 1 на степен 4/2-1=1).
- digits /= 2;
- for (int k = 1; k < digits; k++) {
- num *= 10;
- }
- }
- //Аналогично постъпваме при нечетен брой цифри, като тук махаме само една цифра.
- else {
- for (int i = 1; i <digits / 2 + 1; i++) {
- int sum = num % 10;
- for (int k = 2; k <= i; k++) {
- sum *= 10;
- }
- rs_num += sum;
- num = num / 10;
- }
- num /= 10; //делим, за да махнем средната цифра.
- digits /= 2;
- for (int k = 1; k <= digits; k++) {
- num *= 10;
- }
- }
- num += rs_num; //събираме лява и дясна част и получаваме новото число.
- std::cout << num << " " << num + 1;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement