微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

大数乘法

#include<iostream>
using namespace std;
#include<vector>
void main(){
	const int N = 10;
	const int M = 3;
	char str1[N] = "922222229";
	char str2[M] = "22";
	vector<int> myvector1;
	 
	int weishu = 0;
		for (int j = 0; j < M-1; j++)
	{
		for (int i = 0; i < N - 1; i++)
		{
			int num = (str1[N - i - 2] - '0') *(str2[M - j - 2] - '0') + weishu;
			weishu = num / 10;
			if (myvector1.size() <= j + i)myvector1.push_back(num%10);
			else{
				myvector1[j + i] += num % 10;
				weishu += myvector1[j + i] / 10;
				myvector1[j + i] = myvector1[j + i] % 10;
			} 
		}
		if (weishu){
			if (myvector1.size() <= N - 1 + j)myvector1.push_back(weishu);
			else{
				myvector1[N - 1 + j] += weishu;
			}
			weishu = 0;
		}
		
	} 
	for (int i = myvector1.size()-1; i >= 0; i--)
	{
		cout << myvector1[i];
	} 
	system("pause");
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐