如何添加1234567890123456789012345678901234567890
之类的数字,这些数字无法使用原始数据类型指定?你将使用什么样的数据结构?
答案 0 :(得分:4)
您将需要一个实现任意精度算术的C库。有很多可供选择。一个受欢迎的选择是GNU Multi-Precision Library。
答案 1 :(得分:2)
答案 2 :(得分:2)
如果您只想添加问题所暗示的整数,那么您可以简单地使用字符串并使用2D查找表实现单位数添加。如果您的要求更复杂,那么正如其他人所建议的那样,您需要某种库来处理大数字。无论您使用现有的库还是自己的库,都取决于您。
答案 3 :(得分:2)
我最近一直使用MPFR - GNU多精度浮点计算和正确的舍入库。 API在结构上与MAPM类似,根据我的经验使用它非常简单。
但是,如果您只使用整数,则可能会从具有单独整数类型(即MAPM)的多精度库中获得更好的性能,因为MPFR专用于浮点。
答案 4 :(得分:0)
我将使用 STACKS 。 通过首先放置具有最高位值的数字,可以将数字存储在堆栈中,以便一个位置的数字应该位于堆栈的顶部。弹出两个堆栈并添加堆栈中的数字,其中进位最初为零。将结果逐位推送到第三个堆栈中。重复,直到两个堆栈都是空的。