1 条题解
-
2
会发现,1111 = 11 ∗ 101 , 11111 = 11 + 111 *100 . . . 即这些数都能表示为 11 和111的组合。因此若 x 可以表示为 11a+111b(0≤a,b),则可以拆分,反之不行
继续推导:
11a+111b=11(a+10b)+b=x
b≡x(mod11)
a+10b=
a=−10b≥0
b最小为x%11 ,因此 − 10 ( x % 11 ) ≥ 0则有解,反之不行。
#include <bits/stdc++.h> using namespace std; int main() { int t; scanf("%d", &t); while (t--) { int n; scanf("%d", &n); int ans = n / 11; int cnt = n % 11; if (cnt * 10 <= ans) { printf("YES\n"); } else { printf("NO\n"); } } return 0; }
信息
- ID
- 825
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- 递交数
- 404
- 已通过
- 38
- 上传者