Codeforces Round #723 (Div. 2) B - I Hate 1111(数学+思维)
https://codeforces.com/contest/1526/problem/B
给你一个整数x,你能把11,111,1111,11111,…(您可以使用其中的任意数字任意次)。
举个例子,
33=11+11+11
144=111+11+11+11
对于每个测试用例,您应该输出一个单独的字符串。如果能做x,输出“是”(不带引号)。否则,输出“否”。
input
3
33
144
69
output
YES
YES
NO
- 可以看到11,111除开后,1111是由101个11组成,11111是由100个111和1个11组成,111……依旧是由111和11组成
- 所以x=111 * a 个+11 * b 个
- 依次枚举即可
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int,int> PII;
const int N=500500;
const int M=2002;
int a[N];
int main()
{
cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
int T;
cin>>T;
while(T--)
{
LL n;
cin>>n;
bool flag=false;
for(int i=0; ;i++)
{
if(111*i>n) break;
if((n-111*i)%11==0)
{
flag=true;
break;
}
}
if(flag==false) cout<<"NO"<<endl;
else cout<<"YES"<<endl;
}
return 0;
}