Description
给出两个正整数A和B,计算A*B的值。保证A和B的位数不超过500位。
Input
读入两个用空格隔开的正整数
Output
输出A*B的值
Sample Input
3 12
Sample Output
36
Hint
两个正整数的位数不超过500位
#include#include using namespace std;char A[510],B[510];int a[510],b[510],c[1020];int main(){ cin>>A>>B; int aLen=strlen(A), bLen=strlen(B); for (int i=1;i<=aLen;i++) a[i]=A[aLen-i]-'0'; for (int i=1;i<=bLen;i++) b[i]=B[bLen-i]-'0'; int x; for (int i=1;i<=aLen;i++) { x=0;//处理进位 for (int j=1;j<=bLen;j++) { c[i+j-1]=c[i+j-1]+x+a[i]*b[j]; x=c[i+j-1]/10; c[i+j-1]%=10; } c[bLen+i]=x; } int cLen=aLen+bLen; while (!c[cLen] && cLen>1) cLen--; for (int i=cLen;i>=1;i--) cout<