Решение задачи Счастливый билет - 2 с Acmp

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


Билет называется счастливым, если его можно разрезать прямой линией между цифр на две части таким образом, что оказавшиеся на них числа имеют одинаковые цифровые корни. Чтобы вычислить цифровой корень числа, его цифры складывают, если в результате получится число большее или равное 10, то цифры складывают снова и так далее, пока не получится число от 0 до 9 – это и есть цифровой корень. Например, билет с номером 0015420 является счастливым, так как разрезав его на части с числами 0015 и 420 имеем у этих чисел одинаковые цифровые корни.

Код

#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    int k1, k2;
    string s;
    cin >> s;
    for(int i = 1; i < s.size(); ++i){
        k1 = 0, k2 = 0;
        for(int j = 0; j < i; ++j)
            k1+=s[j] - 48;
        for(int j = i; j < s.size(); ++j)
            k2+=s[j] - 48;
        while(k1 >= 10 || k2 >= 10){
            k1%=9;
            k2%=9;
        }
        if(k2 == k1){
            printf("YES");
            return 0;
        }
    }
    printf("NO");
    return 0;
}

         

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



Комментарии

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