用大數加法
我覺得我大數加法寫的不太好...
#include <stdio.h>
#include <string.h>
int main(void)
{
int i, len;
char num[110], sum[200], p, tmp;
for (i = 0; i < 200; i++)
sum[i] = 0;
while (gets(num) != NULL && (num[0] != '0' || num[1] != '\0'))
{
len = strlen(num);
for (i = 0; i < len/2; i++)
{
tmp = num[i];
num[i] = num[len-i-1];
num[len-i-1] = tmp;
}
i = 0;
while (num[i] != '\0')
{
p = sum[i] + num[i]-'0';
sum[i] = p%10;
sum[i+1] = sum[i+1] + p/10;
i++;
}
while (i < 200 && sum[i] > 9)
{
sum[i+1] = sum[i+1] + sum[i]/10;
sum[i] = sum[i] % 10;
i++;
}
}
i = 199;
while (sum[i] == 0)
i--;
for (; i >= 0; i--)
printf("%d", sum[i]);
putchar('\n');
return 0;
}
沒有留言:
張貼留言