CODE[VS]——3117 高精度练习之乘法

3117 高精度练习之乘法

题目链接.

日常水题

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string a,b;
	cin>>a>>b;
	if(a.length()<b.length())swap(a,b);
	reverse(a.begin(),a.end());
	reverse(b.begin(),b.end());
	//cout<<a<<'
'<<b;
	int aa[505],bb[505],ans[1010]={0};
	for(int i=0;i<a.length();i++)aa[i]=a[i]-'0';
	for(int i=0;i<b.length();i++)bb[i]=b[i]-'0';
	/*
	for(int i=0;i<a.length();i++)printf("%d",aa[i]);
	printf("
");
	for(int i=0;i<b.length();i++)printf("%d",bb[i]);
	*/
	for(int i=0;i<b.length();i++){
		for(int j=0;j<a.length();j++){
			ans[i+j]+=bb[i]*aa[j];
		}
	}
	for(int i=0;i<a.length()+b.length();i++){
		if(ans[i]>=10){
			ans[i+1]+=ans[i]/10;
			ans[i]=ans[i]%10;
		}
		//printf("%d ",ans[i]);
	}
	printf("
");
	int have=0;
	for(int i=a.length()+b.length();i>=0;i--)
	{
		if(ans[i]!=0)have=1;
		if(have)printf("%d",ans[i]);
	}
	return 0;
} 
原文地址:https://www.cnblogs.com/--ChenShou--/p/10849141.html