1. 程式人生 > >Really Big Numbers CodeForces - 817C(思維)

Really Big Numbers CodeForces - 817C(思維)

Really Big Numbers CodeForces - 817C(思維)

題意:輸入n,s問s-n中有多少數減去自身所有位數值的和比s大。

思路:其實就是猜測,嗯然後猜測對了,一次跑完所有測試樣例嘻嘻嘻。 其實主要方法用對就不會超時。想想從s開始增大肯定到某個階段,肯定再怎麼減去所有位數的和值都不會比s小。所以找這個情況就好了。然後就可以發現,當s的長度*9+s。的值就是分界線。然後就出來了。

#include<cstdio>
#include<iostream>
using namespace std;
typedef long long ll;
int f(ll u)
{
    int ans=0;
    while(u){
        ans+=u%10;
        u/=10;
    }
    return ans;
}
int wei(ll u)
{
    int ans=0;
    while(u){u/=10;ans++;}
    return ans;
}
int main()
{
    ll n,s;
    scanf("%lld%lld",&n,&s);
    ll ans=0,i;
    int len=wei(s);
    for(i=s;i<=s+len*9;i++)
    {
        if(i>n) break;
        if(i-f(i)>=s) ans++;
    }
    if(i>n) printf("%lld\n",ans);
    else{printf("%lld\n",n-i+1+ans);}
    return 0;
}

yong'dui