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
  1. 可以看到11,111除开后,1111是由101个11组成,11111是由100个111和1个11组成,111……依旧是由111和11组成
  2. 所以x=111 * a 个+11 * b 个
  3. 依次枚举即可
#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;
}
posted @ 2022-08-05 19:30  Vijurria  阅读(87)  评论(0编辑  收藏  举报