提交记录 12325
提交时间 |
评测时间 |
2020-03-22 15:39:24 |
2020-08-01 02:53:59 |
#include<iostream>
#include<string>
#include <algorithm>
using namespace std;
int main(){
string k, g;
cin>>k>>g;
//int数组各个值初始化为0,c中存放计算结果。
int a[10100]={0}, b[10001]={0}, c[20200]={0};
int la = k.size(),lb = g.size();
//两个大数相乘最大位数是sizea+sizeb
int len = la+lb;
int i,j;
//字符串变量逆序转成int数组,可以简化大部分字符和数字转换细节。
for(i=0,j=la-1;j>=0;j--,i++){
a[i] = k[j]-'0';
}
for(i=0,j=lb-1;j>=0;j--,i++){
b[i] = g[j]-'0';
}
for(i=0;i<la;i++){
for(j =0;j<lb;j++){
c[i+j] +=a[i]*b[j];
/*
c[i+j+1] +=c[i+j]/10;
c[i+j] = c[i+j]%10;*/
}
}
for(i=0;i<len;i++){
if(c[i]>=10){
c[i+1] +=c[i]/10;
c[i] = c[i]%10;
}
}
//找到c数组中第一个不为零的位置,逆序输出就是和的值
int m = len;
while(m>=0&&c[m]==0)m--;
//c数组中数据全部是0,
if(m<0){
cout<<"0"<<endl;
return 0;
}
for(i=m;i>=0;i--){
cout<<c[i];
}
cout<<endl;
return 0;
}
Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
Testcase #1 | 56.927 ms | 248 KB | Accepted | Score: 100 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2024-10-05 10:25:13 | Loaded in 0 ms | Server Status
个人娱乐项目,仅供学习交流使用