如何执行“超长”整数的乘法和除法?

时间:2013-03-26 05:31:11

标签: c arrays int

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

这里你可以假设正超长整数占用的最大位数是25位。

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

  1. 添加两个正超长整数
  2. 从另一个正超长整数中减去一个正超长整数
  3. 乘以两个正超长整数
  4. 将一个正超长整数除以另一个正超长整数
  5. 提供一个正超长整数除以另一个正超长整数
  6. 的余数
  7. 找到两个正超长整数的最大值
  8. 我完成了编写用于执行加法,减法和最多两个正超长整数的函数。我无法执行乘法和除法以分别得到商和余数。

2 个答案:

答案 0 :(得分:1)

如果您无法编写自己的功能,那么您只需要使用GMP库

http://gmplib.org/

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

答案 1 :(得分:0)

所有表达式的结果将是非常大的数字,超出甚至长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

Extremely big integer multiplication and addition