-3

需要编写一个 C 程序,将两个数字相加,每个数字 100+ 位..

我不希望使用数组的方法来做到这一点。请建议我如何存储这些数字(至少 512 位大小)并进行算术运算?

4

1 回答 1

5

您可以为此使用任意精度的算术库,例如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));
于 2013-08-17T07:27:11.537 回答