乘以两个长多头的C

Lig*_*dle 5 c int multiplication long-integer

我正在研究C中的一个程序,作为家庭作业的一部分,我必须得到两个长数字的乘积作为字符串.例如:123456789021和132456789098.由于它被视为一个字符串,我将它们转换为long long int进行乘法运算.但是最终的产品会非常大(我估计比长长的int大).任何人都可以建议我一个方法来执行这个乘法?

Gre*_*ill 15

这是一种方法:考虑如何在纸上手动将这些数字相乘.在C中实现此方法.您将不得不发现:

  • 如何将整数(表示为字符串)分解为数字
  • 如何将每个数字转换回整数 0 <= d < 10
  • 如何管理数字数组(即你应该有多大的数组?)
  • 如何编写可能需要实现乘法的循环
  • 如何管理从一位数到下一位数的产品
  • 如何将这些数字转换回字符以便输出

  • 如果不是因为你的输入和输出都是10,那么你可以通过使用base 2 ^ 32(64位类型的数字)或base 2 ^ 16(32位)来更有效地完成所有这些操作.位类型)而不是基数10. (2认同)