https://codeforces.com/contest/1526/problem/B
给定一个 $X$, 问 $X$ 能否由形如 $11$, $111$, $1111$ 等数字相加组成。
首先,通过观察我们可以发现,$1111 = 11 * 101$, $11111 = 111 * 100 + 11$ ...... 这个规律,大于 $111$ 的全由 $1$ 组成的数字 $X$ 一定能拆成 $X = A * 11 + B * 111$。
换句话说,所有能由形如 $11$, $111$, $1111$ 等数字相加组成的数字也一定能拆成 $A * 11 + B * 111$。
我们构造一组 $C * 11 + D, (D < 11)$ 使其等于 $B$, 则 $X = A * 11 + (C * 11 + D) * 111 = (A + C * 111) * 11 + D * 111$。
显然,$D < 11$, 我们只要枚举所有可能的 $D (0 - 10)$, 检查有没有可行的整数解,就可以判断出结果。
void solve()
{
long long n;
cin >> n;
for (int i = 0; i < 11; i++)
{
if (n % 11 == 0)
{
cout << "YES\n";
return;
}
n -= 111;
if (n < 0) break;
}
cout << "NO\n";
}