题目链接 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;
}