【SPOJ】SPCQ-GOPU AND DIGITS DIVISIBILITYデジタル処理


  • 題意
  • 題解
  • 一点テスト
  • コード
  • に言及


    Tグループのデータ、各グループのデータは1つのnを入力して、最小のnより小さくないxを求めて、xを満たす各位をプラスしていっしょにxを取り除くことができます.

    問題解


    暴力.直接nからxを列挙して、皆さんが一緒にこの数を除去できるかどうかを判断します.

    一点テスト


    自分で走るプログラムは1000 w個の数をランダムにテストし、最も多いのは436回、平均判断回数は28.1396078である.したがって,この暴力はランダムデータの下で速く走ることができ,今回の試験の限界データ213994575384292455ばかりであっても,問題の10000組のデータ条件下では時間内にこの問題を通過することができると考えられる.

    コード#コード#

    #include 
    #include 
    #include 
    #include 
    #define N 101000
    #define ll long long
    using namespace std;
    ll check(ll x)
    {
        int i,j,k;
        ll sum=0,p=x;
        while(p)
        {
            sum+=p%10;
            p/=10;
        }
        return x%sum;
    }
    int main()
    {
    //  freopen("1.in","r",stdin);
    
        int g;
        ll x;
        for(scanf("%d",&g);g--;)
        {
            cin>>x;
            while(check(x))x++;
            cout<return 0;
    }