需要编写一个 C 程序,将两个数字相加,每个数字 100+ 位..
我不希望使用数组的方法来做到这一点。请建议我如何存储这些数字(至少 512 位大小)并进行算术运算?
您可以为此使用任意精度的算术库,例如GMP。
一个快速的 C 示例:
#include <gmp.h>
mpz_t a, b;
const char *huge_decimal_num1 = "46819294521564960351683095841209562359068";
const char *huge_decimal_num2 = "6904120584864540916814056801234572451249681";
mpz_init_set_str (a, huge_decimal_num1, 10);
mpz_init_set_str (b, huge_decimal_num2, 10);
mpz_add (a, a, b); // a = a + b
printf("%s + %s = %s\n",
huge_decimal_num1, huge_decimal_num2, mpz_get_str (NULL, 10, a));