#include #include #include int main(int argc, char **argv) { const char *a = argv[1]; const char *b = argv[2]; // Gjør så a er det lengste tallet, om noe. if (strlen(b) > strlen(a)) { const char *tmp = a; a = b; b = tmp; } // Legg sammen tallene, bakfra. char result[1024]; int carry = 0; char *resptr = result; const char *aptr = a + strlen(a) - 1; const char *bptr = b + strlen(b) - 1; while (aptr >= a && bptr >= b) { char num = carry + *aptr + *bptr - '0'; if (num > '9') { carry = 1; num -= 10; } else { carry = 0; } *resptr++ = num; --aptr, --bptr; } while (aptr >= a) { char num = carry + *aptr; if (num > '9') { carry = 1; num -= 10; } else { carry = 0; } *resptr++ = num; --aptr; } if (carry) { *resptr++ = '1'; } --resptr; // Fjern innledende nuller. while (resptr > result && *resptr == '0') { --resptr; } // Skriv ut tallet, baklengs. while (resptr >= result) { putchar(*resptr--); } putchar('\n'); return 0; }