标签:
给出两个正整数A和B,计算A*B的值。保证A和B的位数不超过500位。
读入两个用空格隔开的正整数
输出A*B的值
3 12
36
两个正整数的位数不超过500位
#include<iostream> #include<cstring> using namespace std; int a[501],b[501],f[501],lena,lenb,lenc=1,x; char n[501],m[501]; int main() { cin>>n; cin>>m; lena=strlen(n); lenb=strlen(m); for(int i=0; i<lena; i++) a[lena-i]=n[i]-‘0‘; for(int i=0; i<lenb; i++) b[lenb-i]=m[i]-‘0‘; for(int i=1; i<=lena; i++) { x=0; for(int j=1; j<=lenb; j++) { f[i+j-1]=a[i]*b[j]+x+f[i+j-1]; x=f[i+j-1]/10; f[i+j-1]%=10; } f[i+lenb]=x; } lenc=lena+lenb; while(f[lenc]==0&&lenc>1) lenc--; for(int i=lenc; i>=1; i--) cout<<f[i]; return 0; }
标签:
原文地址:http://www.cnblogs.com/dxy1174868024/p/5470103.html