C++ 实现大数相乘

本文探讨如何在C++中处理大数相乘的问题。当数值超出计算机内置类型范围时,通过字符串存储大数,并应用基本的算术乘法规则进行计算。算法遵循小学算术原理,逐位相乘并累加,确保正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果这两个数比较小(即能用计算机的int、long类型表示,并且相乘后的结果任然能够表示)那么直接用计算机

的乘法运算就可以了。这里的大数指的是用计算机的预设类型(int、long等)无法表示的数,如:11111111111

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111...

算法原理:这个原理其实很简单,就是我们小学学的算术,两个数相乘把其中一个数的各位数字乘以另一个数,并

把相乘的结果累加,注意在累加时要补0,比如:一个数的十位上的数乘以另一个数这时计算结果要乘以10,在这里

我们用字符串保存大数,算法模拟了两个数相乘的演算过程,最终计算出结果。


//大数乘法
std::string bigDataMultiply(string str1, string str2) {

	const char* data1 = str1.data();
	const char* data2 = str2.data();
	int len1=str1.l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值