1263: 【基础】【P1303】高精度乘
内存限制:32 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:24
解决:6
题目描述
高精度乘,求两个很大的非负整数相乘的结果。
输入
2个非负整数,每个一行,每个整数不超过240位。
输出
一个整数,表示相乘的结果。
样例输入 复制
514
495
样例输出 复制
254430
提示

#include<bits/stdc++.h> using namespace std; #define maxn 520 int a[maxn],b[maxn],c[maxn]; int main(){ string A,B; cin>>A>>B; int lena,lenb,lenc; lena=A.length(); lenb=B.length(); for (int i=lena-1;i>=0;i--) { a[lena-i]=A[i]-'0'; } for (int i=lenb-1;i>=0;i--) { b[lenb-i]=B[i]-'0'; } for (int i=1;i<=lena;i++) { for (int j=1;j<=lenb;j++) { c[i+j-1]+=a[i]*b[j]; } } lenc=lena+lenb; for (int i=1;i<=lenc;i++) { c[i+1]+=c[i]/10; c[i]=c[i]%10; } while (c[lenc]==0) lenc--; for (int i=max(1,lenc);i>=1;i--) cout<<c[i]; return 0; }