社区讨论
求大佬看看,为什么RE了???
P1303A*B Problem参与者 3已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lpf63gci
- 此快照首次捕获于
- 2023/11/26 15:37 2 年前
- 此快照最后确认于
- 2023/11/26 17:18 2 年前
啊啊啊啊!写了一上午,到底哪里RE了呀!!!
CPP#include <bits/stdc++.h>
using namespace std ;
string q , p ;
string mul( string x , string y )
{
//a[]数组乘数,b[]数组乘数,c[]=a[]*b[]
int a[1005] = {} , b[1005] = {} , c[1005] = {} ;
int k = 1 ;
//a[]数组转换成数字
for( int i = x.size() - 1 ; i >= 0 ; i -- )
{
a[k] = x[i] - '0' ;
k ++ ;
}
k = 1 ;
//b[]数组转换成数字
for( int i = y.size() - 1 ; i >= 0 ; i -- )
{
b[k] = y[i] - '0' ;
k ++ ;
}
//计算
for( int i = 1 ; i <= y.size() ; i ++ )
{
//外层循环:循环b数组的每一位
for( int j = 1 ; j <= x.size() ; j ++ )
{
//内层循环:模拟a*b[i]
c[i + j - 1] += b[i] * a[j] ;
//考虑进位
c[i + j] += c[i + j - 1] / 10 ;
c[i + j - 1] %= 10 ;
}
}
string z = "" ;
//进位,长度加一
int len = x.size() + y.size() ;
while( c[len] == 0 && len > 1 ) len -- ;
//转换成字符串
for( int i = len ; i >= 1 ; i -- )
{
z = z + char( c[i] + '0' ) ;
}
//输出
return z ;
}
int main()
{
cin >> q >> p ;
cout << mul( q , p ) ;
return 0 ;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...