c 语言求两数的乘积的程序,C ++程序,用于实现两个数相乘的Schonhage-Strassen算法...

这篇博客介绍了Schonhage-Strassen算法,一种适用于大整数乘法的快速算法。当数字超过一定长度时,该算法比Karatsuba和Toom-Cook等传统方法更有效。文中提供了详细的算法步骤和C++实现代码,展示了如何计算两个大整数的乘积,并给出了实例输出。
摘要由CSDN通过智能技术生成

Schonhage-Strassen算法用于将两个数字相乘。SchonhageStrassen算法是用于大整数的渐近快速乘法算法。实际上,对于超过2 215至2 217(十进制10,000到40,000)的数字,Schonhage-Strassen算法开始胜过karatsuba和Toom-CooK等旧方法。

算法Begin

function noOfDigit( x)

Declare a variable n and assign n = 0;

while (x > 0)

x = x /10

Increment n

return n

End

Begin

Algorithm for schonhageStrassenMultiplication:

schonhageStrassenMultiplication(a, b, n, m)

define an array linearConvolution[n + m - 1]

for i = 0 to (n + m - 1)-1

linearConvolution[i] = 0;

long p = a

for i = 0 to m-1

a = p

for j = 0 to n-1

linearConvolution[i + j] += (b mod 10) * (a mod 10);

a /= 10

b /= 10

for i = (n + m - 2) to 0

Print linearConvolution[i]

long product = 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值