sleepwalking1 @ 2022-07-13 13:39:43
#include<bits/stdc++.h>
using namespace std;
char a[210],b[210];
int a1[10000],b1[10000],c1[10000];
int main()
{
cin>>a>>b;
int lena=strlen(a);
int lenb=strlen(b);
if(lena==1 && a[0]=='0'){
cout<<0<<endl;
return 0;
}
for(int i=0;i<lena;i++)
a1[i]=a[lena-i-1]-'0';
for(int i=0;i<lenb;i++)
b1[i]=b[lenb-i-1]-'0';
for(int i=0;i<lena;i++){
for(int j=0;j<lenb;j++){
c1[i+j]+=a1[i]*b1[j];
while(c1[i+j]>=10){
c1[i+j+1]++;
c1[i+j]-=10;
}
}
}
if(c1[lena+lenb-1]) lena++;
for(int i=lena+lenb-2;i>=0;i--) cout<<c1[i];
return 0;
}
by dingshengyang @ 2022-07-13 13:42:14
@sleepwalking1 我帮你下
by dingshengyang @ 2022-07-13 13:44:15
@sleepwalking1 第4个点:
输入:
10153121203431213503345456153440628076307751234545615344063554680646079420928076307751203431213503345456153440635547808670457735546806460794209280763077512034312135033454561534406355478086704577687063554680646079420928076307751234545615344063554680646079420928076307751203431213503345456153440635547804577355468064607942092807630775120343121350334545615344063554780867045776870635546806460786704577687063554680034312135033454561
696545465468167657656275465464678617648648678280763077512345456153440635546806460794209280763077512034312135033454561534406355478086704577355468064607942092807630775120343121350334545615344063554780867045776870635542807630775123454561534406355468064607942092807630775120343121350334545615344063554780457768624780457735546806460794209280763077512034312135033454561534406355478086704577687063554680646792957978948924988
输出:
7072110534598717176912695742264535065308288288997015047555792337135421062330287334614170504486081585103607514272658223716989727906823978298902147489621316383752762596093000470760309252055973820470401785993854977638617584740744079604448761229768278691072314168757885357810857561382779397400630728227929327104495329137090719784488990410086310926037498954450893567317219892493049182552576811904772366694312024274959389157039989368347405555075510791494691883581250804630607880838377624460737671178398165035137911457363217803140053888576219053350712581494173218856681026953930215523152534490503255660900821163251460793024309740492134354089105238764123533599844745604547405165548326759277931134816334867829622125118209145223841071007800250069966433665748163708822329633632074852409991209189613248181252691716693291128336651713020979370312906895470268
by dingshengyang @ 2022-07-13 13:45:02
@sleepwalking1 不能再下了,我只剩3次机会了
by sleepwalking1 @ 2022-07-13 13:45:20
谢谢,好人一生平安
by qnqfff @ 2022-07-13 13:45:21
数组开小了
by sleepwalking1 @ 2022-07-13 13:45:53
关注了
by sleepwalking1 @ 2022-07-13 13:46:26
我试一下 谢谢
by sleepwalking1 @ 2022-07-13 13:50:09
#include<bits/stdc++.h>
using namespace std;
char a[1000000],b[1000000];
int a1[1000000],b1[1000000],c1[1000000];
int main()
{
cin>>a>>b;
int lena=strlen(a);
int lenb=strlen(b);
if(lena==1 && a[0]=='0'){
cout<<0<<endl;
return 0;
}
for(int i=0;i<lena;i++) a1[i]=a[lena-i-1]-'0';
for(int i=0;i<lenb;i++) b1[i]=b[lenb-i-1]-'0';
for(int i=0;i<lena;i++){
for(int j=0;j<lenb;j++){
c1[i+j]+=a1[i]*b1[j];
while(c1[i+j]>=10){
c1[i+j+1]++;
c1[i+j]-=10;
}
}
}
if(c1[lena+lenb-1]) lena++;
for(int i=lena+lenb-2;i>=0;i--) cout<<c1[i];
return 0;
}
开小了 AC,谢谢