litianrui0201 @ 2025-01-06 15:19:50
#include<bits/stdc++.h>
using namespace std;
/*
12*34=408
例1:
21
43 *
------------
84
63
------------
804
so:12*34=408
*/
const int MAXN=2e3+10;
int abc[MAXN][MAXN];//第9行~第10行
int av[MAXN];//第1个乘数
int bv[MAXN];//第2个乘数
int cv[MAXN];//积
int main( ){
string a,b;cin>>a>>b;
for(int i=0;i<a.length( );i++)av[i]=a[a.length( )-i-1]-'0';
for(int i=0;i<b.length( );i++)bv[i]=b[b.length( )-i-1]-'0';//把两个数(string a,b)转换成数组(int av[a.length( )],bv[b.length( )])
for(int i=0;i<b.length( );i++){
for(int j=0;j<a.length( );j++){
abc[i][j+i]+=av[j]*bv[i];
abc[i][j+i+1]+=abc[i][j]/10;//上一位进位
abc[i][j+i]=abc[i][j]%10;//这一位的值
//第9行~第10行 的数放入数组
}
}
for(int i=0;i<b.length( );i++){
for(int j=0;i<a.length( );j++){
cv[i]+=abc[i][j]+cv[i];
cv[i+1]+=cv[i]/10;//上一位进位
cv[i]=cv[i]%10;//这一位的值
//求积(第9行~第10行的和(第12行))cv[a.length( )+b.length( )+5]
}
}
bool flag=false;
for(int i=a.length( )+b.length( )+5;i>=0;i--){
if(cv[i]!=0&&flag==false){
flag=true;
cout<<cv[i];
}else cout<<cv[i];
}//输出积
return 0;
}
by cyq32ent @ 2025-01-06 15:22:45
《for(int j=0;
i
<a.length( );j++){
》
(验证码ywww)
by litianrui0201 @ 2025-01-06 15:40:39
@cyq32ent终于有结果了