1

考虑处理可能有数百位数字的整数的需要。让我们称它们为“超长”整数。显然,它们不能使用 int 或 long int 等数据类型存储。一个“超长”整数可以作为用户的输入逐位读取,并存储在一个数组中,超长整数的每个数字在数组中占据一个位置。该问题涉及将两个正的“超长”整数作为用户的输入,逐位数字。每个数字都由用户作为字符输入。正“超长”整数的结尾由 $ 符号的输入和存储来表示。

在这里,您可以假设正超长整数将占用的最大位数为 25 位。

编写一个能够对这些正超长整数执行以下操作的 C 程序。

  1. 添加两个正超长整数
  2. 从另一个正超长整数中减去一个正超长整数
  3. 将两个正超长整数相乘
  4. 将一个正超长整数除以另一个正超长整数
  5. 提供一个正超长整数除以另一个正超长整数的余数
  6. 求两个正超长整数的最大值

我完成了编写用于执行两个正超长整数的加法、减法和最大值的函数。我无法执行乘法和除法来分别获得商和余数。

4

2 回答 2

1

如果您无法编写自己的函数,您只需要使用 GMP 库,

http://gmplib.org/

使用它,您将被排序....

于 2013-03-26T05:37:41.423 回答
0

所有表达式的结果将是一个非常大的数字,超出了甚至 long int 或 long double 的范围。您必须使用数组在 c 中存储如此大的数字。您必须使用与我们用来将两个数字相乘的逻辑相同的逻辑,除非将数据存储在我们存储到数组中的普通变量中。

以下是一些参考链接:

http://www.cquestions.com/2010/08/multiplication-of-large-numbers-in-c.html

http://www.cquestions.com/2010/08/division-of-large-numbers-in-c.html

http://www.thinbasic.com/community/showthread.php?11206-C-multiplying-big-integers

http://cboard.cprogramming.com/c-programming/114679-multiplying-huge-numbers-integer-arrays.html

极大的整数乘法和加法

于 2013-03-26T06:55:29.700 回答