hdu 4608 I-number

来源:互联网 发布:startwith java 编辑:程序博客网 时间:2024/05/27 00:46

直接暴力

最后一位加1 之后   进位。。

然后求和

看是不是十的倍数。


#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;int X[100005]={0};int solve(int ct){    int m=ct;    int sum=0;    while(1)    {        if(m==0)break;        if(X[m]==10)        {            X[m]=0;            X[m-1]++;            m--;        }        else break;    }    for(int i=0;i<=ct;i++)    {        sum+=X[i];    }    return sum;}int main(){    int T;    scanf("%d",&T);    while(T--)    {        char ch[100005];        X[0]=0;        int sum=0;        scanf("%s",ch);        int cnt=strlen(ch);        for(int i=0;i<cnt;i++)        X[i+1]=ch[i]-'0';       // printf("%d",cnt);        do        {            X[cnt]++;            int tmp = solve(cnt);            if(tmp%10==0)break;        }while(1);        int i=X[0]==0?1:0;        for(;i<=cnt;i++)        printf("%d",X[i]);        puts("");    }    return 0;}


原创粉丝点击