直接开高精度
2026-03-29 13:27:29
发布于:湖北
7阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
string solve(string s,string t){
//逆序
reverse(s.begin(),s.end());
reverse(t.begin(),t.end());
//定义变量:长度
int len=s.size()+t.size();
//定义数组:答案
int a[25000]={0};
//计算
for(int i=0;i<t.size();i++){
for(int j=0;j<s.size();j++){
a[i+j]+=(t[i]-'0')*(s[j]-'0');
}
}
//进位
for(int i=0;i<len;i++){
a[i+1]+=a[i]/10;
a[i]%=10;
}
//定义变量:答案(同时逆向输入答案)
string ans;
for(int i=0;i<len;i++){
ans=char(a[i]+'0')+ans;
}
//去前导0
while(ans[0]=='0' && ans.size()>1) ans.erase(0,1);
//返回答案
return ans;
}
int main(void){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
string s,t;
cin>>s>>t;
cout<<solve(s,t);
return 0;
}
这里空空如也





有帮助,赞一个