朋友问的,就写了一下,顺便记录记录
#includevoid add(char* a, char* b) { int ret[1024] = {0}; int location = 0; int lentha = strlen(a); int lenthb = strlen(b); int lenth = lentha > lenthb ? lenthb : lentha; int uper = 0; int this = 0; for (int i = 1; i <= lenth; i++) { this = (a[lentha - i] - '0' + b[lenthb - i] - '0' + uper) % 10; uper = (a[lentha - i] - '0' + b[lenthb - i] - '0' + uper) / 10; ret[location++] = this; } if (lentha == lenthb && uper == 1) { ret[location++] = 1; location--; for (; location >= 0; location--)printf("%d", ret[location]); return; } if (lentha > lenthb) { for (int i = lenth+1; i <= lentha; i++) { this = (a[lentha - i] - '0'+ uper) % 10; uper = (a[lentha - i] - '0'+ uper) / 10; ret[location++] = this; } } else { for (int i = lenth + 1; i <= lenthb; i++) { this = (b[lenthb - i] - '0' + uper) % 10; uper = (b[lenthb - i] - '0' + uper) / 10; ret[location++] = this; } } if (uper == 1)ret[location++] = 1; location--; for (; location >= 0; location--)printf("%d", ret[location]); } int main() { add("534234555", "5555"); }



