天天看點

SDUT 2633 I-number

題目連結 SDUT 2633 I-number

說好的一天一題..可是今天太累了(    (╯‵□′)╯  ┴─┴ 不要找借口!    )

于是就水了兩題╮(╯▽╰)╭...聊以自慰

這題主要是用字元串讀入數字, 高精度神馬的我現在還不會...等我過幾天學了JAVA後用它試試..

不過據說會逾時(╯‵□′)╯  ┴─┴ 

#include <stdio.h>
#include <string.h>
void Add(char num[])
{
    int len = strlen(num);
    if (num[len - 1] - '0' + 1 < 10)
    {
        num[len - 1] = ++num[len - 1];
    }
    else
    {
        int k = len - 1;
        while (num[k] - '0' + 1 > 9)
        {
            num[k] = '0';
            if (k == 0)
            {
                for (int i = len - 1; i >= 0; i--)
                    num[i + 1] = num[i];
                break;
            }
            k--;
        }
        num[k]++;
    }
}

int main()
{
    //freopen("input.txt", "r", stdin);
    int i, j;
    int T;
    scanf("%d", &T);
    getchar();
    char num[100005];
    while (T--)
    {
        memset(num, 0, sizeof(num));
        gets(num);
        Add(num);
        while (1)
        {
            int sum = 0;
            for (i = 0; i < strlen(num); i++)      //求和每位數字.
                sum += num[i] - '0';
            if (!(sum % 10))
            {
                printf("%s\n", num);
                break;
            }
            else
            {
                Add(num);

            }
        }
    }
    return 0;

}