31 条题解
-
-1
今天,我搞出一种方法——高精度乘法(太难了建议不要看)能AC;
#include <bits/stdc++.h> using namespace std; string mul(string s1,string s2) { string ret; int a[520]={0},b[520]={0},c[1020]={0}; int la=s1.length(),lb=s2.length(); for(int i=0;i<s1.length();i++) { a[s1.length()-i-1]=s1[i]-'0'; } for(int i=0;i<s2.length();i++) { b[s2.length()-i-1]=s2[i]-'0'; } for(int i=0;i<lb;i++) { for(int j=0;j<la;j++) { c[i+j]+=a[j]*b[i]; c[i+j+1]+=c[i+j]/10; c[i+j]%=10; } } int idx=la+lb; while(idx&&!c[idx]) { idx--; } for(int i=idx;i>=0;i--) { ret+=char(c[i]+'0'); } return ret; } int main() { string a,b; cin>>a>>b; cout << mul(a,b) << endl; return 0; }
信息
- ID
- 1295
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 递交数
- 2424
- 已通过
- 1430
- 上传者