#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
//大数乘法---字符串模拟数字相乘
void main()
{
string str1,str2;
cin >> str1 >> str2;
reverse(str1.begin(),str1.end());
reverse(str2.begin(),str2.end());
string result;
result.resize(str1.size()+str2.size()+1);
//设置result的初始值
for(int i=0;i<result.size();++i) result[i]= '0';
for(unsigned i=0;i<str1.size();++i)
{
for(unsigned j=0;j<str2.size();++j)
{
result[i+j] = (str1[i]-'0')*(str2[j]-'0')+result[i+j];
int temp = result[i+j] -'0';
int pos = i+j;
int cao = temp/10;
while(cao)
{
result[pos] = temp%10 +'0';
result[pos+1] += cao;
temp = result[pos+1] -'0';
cao = temp/10;
pos++;
}
}
}
//for(unsigned i=0;i<result.size()-1;++i)
//{
// int temp = result[i]-'0';
// if(temp>9)
// {
// result[i] = temp%10 + '0';
// result[i+1] = temp/10+result[i+1];
// }
//}
//输出结果
//if(result[result.size()-1]!='0') cout<<result[result.size()-1];
int flag =0;
for(int i= result.size()-1;i>=0;--i)
{
if(result[i]=='0' && flag ==0) continue;
flag =1;
cout<<result[i];
}
}
【笔试面试】大数相乘
最新推荐文章于 2020-11-16 16:46:55 发布