Решение задачи "К-удивительные числа" с Acmp

Без пояснения   Просмотров: 14


Переворотом числа X назовем число, в котором все цифры числа X стоят в обратном порядке. Например, переворотом числа 6372 является число 2736, а числа 7800 - 87. Назовем K-удивительным такое число, которое в сумме со своим переворотом дает число K.

Например, у числа 222 имеется всего два K-удивительных числа: 111 и 210, а у числа 1050 имеется девять K-удивительных числа: 129, 228, 327, 426, 525, 624, 723, 822, 921.

Требуется написать программу, которая по заданному K определит количество K-удивительных чисел.

Код

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int k, c = 0;
    cin >> k;
    for(int i = 1; i <= k; ++i){
        int n = i, res = 0;
        while(!(n % 10)) // или n % 10 == 0
            n/=10;
        while(n){
            res += n%10;
            res*=10;
            n/=10;
        }
        res/=10;
        if(res + i == k)
            c++;
    }
    cout << c;
    return 0;
}

         

 Администратор Photo Автор: Администратор


Отправить решение задачи
Чтобы отправить решение вам нужно войти в систему или зарегистрироваться

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться