實現大整數加法,輸入兩個不超過 1000 位的非負整數,輸出其和。多組測試,EOF 結束。
#include#include #define MAX 1005 int main() { char a[MAX], b[MAX], sum[MAX]; while (scanf("%s%s", a, b) == 2) { int lenA = strlen(a), lenB = strlen(b); int len = lenA > lenB ? lenA : lenB; int carry = 0, idx = 0; for (int i = 0; i < len; i++) { int da = (i < lenA) ? a[lenA - 1 - i] - '0' : 0; int db = (i < lenB) ? b[lenB - 1 - i] - '0' : 0; int s = da + db + carry; sum[idx++] = '0' + (s % 10); carry = s / 10; } if (carry) sum[idx++] = '0' + carry; for (int i = idx - 1; i >= 0; i--) putchar(sum[i]); putchar('\n'); } return 0; }
scanf("%s%s") == 2 判斷。