两个不超过200位的大整数相乘
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s1,s2;
cin>>s1;
cin>>s2;
int a1[202],a2[202],s[404]={0};
int i,j=0;
for(i=s1.length()-1;i>=0;i--)
{
a1[j]=s1[i]-'0';
j++;
}
int k=0;
for(i=s2.length()-1;i>=0;i--)
{
a2[k]=s2[i]-'0';
k++;
}
int count=0;
for(i=0;i<s1.length();i++)
{
for(int j=0;j<s2.length();j++)
{
int temp=s[i+j]+a1[i]*a2[j];
if(temp>9)
{
s[j+i+1]=s[i+j+1]+temp/10;
s[j+i]=temp%10;
}
else
s[j+i]=temp;
//cout<<a1[j]<<"--"<<a2[i]<<endl;
//cout<<s[j+i]<<"*";
}
}
int l=400;
while(s[l-1]==0)
l--;
for(i=l-1;i>=0;i--)
cout<<s[i];
return 0;
}
大整数相乘问题
最新推荐文章于 2021-11-05 21:10:52 发布