From 77c25e379d6b38044047ba56abda9b2f561f50e4 Mon Sep 17 00:00:00 2001 From: OliverLew Date: Fri, 5 Jan 2018 14:54:49 +0800 Subject: [PATCH] change to another method using string manipulation with better logic and readability --- PATAdvanced/1001.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/PATAdvanced/1001.c b/PATAdvanced/1001.c index 32c36c1..e9e6fbe 100644 --- a/PATAdvanced/1001.c +++ b/PATAdvanced/1001.c @@ -23,22 +23,22 @@ */ #include +#include + int main() { - int a, b, sum, count, dec; + int a, b, pos; + char num[11]; + scanf("%d%d", &a, &b); - sum = a + b; + sprintf(num, "%d", a + b); - if(sum == 0) putchar('0'); - if(sum < 0) { putchar('-'); sum = -sum; } - - for(count = 0, dec = 1; sum >= dec; count++, dec *= 10) ; - - for(int c = count; c; c--, sum %= dec) + for(pos = strlen(num) - 3; pos > 0 && num[pos - 1] != '-'; pos -= 3) { - if(c < count && c % 3 == 0 && c) putchar(','); - putchar('0' + sum / (dec /= 10)); + memmove(num + pos + 1, num + pos, strlen(num) - pos + 1); + num[pos] = ','; } + puts(num); return 0; }