syxuu @ 2022-10-28 23:47:22
大佬求助 最后一个点 TLE了 而且我输入之后需要特判 如果没有那个两个判断 输入0 10会输出00;1 0啥也不输出;
#include<iostream>
#include<cstring>
using namespace std;
string jiafa(string str1,string str2);
string chengfa(string str1,string str2);
int main()
{
string str1,str2;
cin>>str1>>str2;
if(str2[0]=='0')
cout<<0;
if(str1[0]=='0')
{
cout<<0;
}
else{
cout<<chengfa(str1,str2)<<endl;
}
return 0;
}
string chengfa(string str1,string str2)
{
string str;
int len_1=str1.length();
int len_2=str2.length();
for(int i=len_2-1;i>=0;i--)
{
string str_m;
int c =str2[i]-'0';
for(int j=0;j<str2[i]-'0';j++){
str_m=jiafa(str_m,str1);
}
str=jiafa(str,str_m);
str_m='0';
str1=str1+'0';
}
return str;
}
string jiafa(string str1,string str2)
{
string str;
int len_1=str1.length();
int len_2=str2.length();
if(len_1>len_2)
{
for(int i=1;i<=len_1-len_2;i++)
{
str2='0'+str2;
}
}
else{
for(int i=1;i<=len_2-len_1;i++){
str1='0'+str1;
}
}
len_1=str1.length();
len_2=str1.length();
int temp;
int jw=0;
for(int i=len_1-1;i>=0;i--){
int a=str1[i]-'0';
int b=str2[i]-'0';
char c=str2[i];
temp=str1[i]-'0'+str2[i]-'0'+jw;
jw=temp/10;
temp%=10;
str=char(temp+'0')+str;
}
if(jw!=0){
str=char(jw+'0')+str;
}
return str;
}
by jmh_AK_IOI @ 2022-11-02 18:56:41
int x=0;
for(int i=1;i<=lenb;i++){
x=0;
for(int j=1;j<=lena;j++){
c1[i+j-1]+=a1[j]*b1[i]+x;
x=c1[i+j-1]/10;
c1[i+j-1]=c1[i+j-1]%10;
}
c1[lena+i]=x;
}