【发布时间】:2011-08-05 06:43:47
【问题描述】:
我需要一种算法来对大数执行算术运算(远高于浮点数、双整数或任何其他数据类型的范围)。我需要用 C 编写代码。我试着在这里查找:Knuth, Donald, The Art of Computer Programming, ISBN 0-201-89684-2, Volume 2: Seminumerical Algorithms, Section 4.3.1: The经典算法,但受不了。我只需要算法而不是代码。
【问题讨论】:
-
对于家庭作业,您可以使用链表作为大数。列表中的单个节点将包含一个数字。
-
您可以随时对现有库进行逆向工程,例如 GMP (gmplib.org) 或 Java 的
BigInteger类。源代码位于java2s.com/Open-Source/Java-Document/6.0-JDK-Core/math/java/…。 -
人类如何对非常大的数字进行算术运算?这就是你的算法,至少是一个起点……
-
@Ray Toal:我认为你不需要对开源代码进行逆向工程;)
-
嘿,那么选词不好...... OP 只需要一个算法,它可以从阅读源代码中收集。应该说“您可以从现有代码中推断一种算法。”不过,好点。精确总是有价值的! +1
标签: c algorithm math largenumber