1. 程式人生 > >P1303 A*B Problem

P1303 A*B Problem

cst clu ont tdi cnblogs ring b- max can

題目描述

求兩數的積。

輸入輸出格式

輸入格式:

兩個數

輸出格式:

輸入輸出樣例

輸入樣例#1:
1 
2
輸出樣例#1:
2

說明

需用高精

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 using namespace std;
 6 const int MAXN=3000001;
 7 char a1[MAXN],b1[MAXN];
8 int a[MAXN],b[MAXN]; 9 int ans[MAXN]; 10 int x; 11 int main() 12 { 13 scanf("%s%s",a1,b1); 14 int la=strlen(a1); 15 int lb=strlen(b1); 16 for(int i=0;i<la;i++) 17 a[i]=a1[la-i-1]-48; 18 for(int i=0;i<lb;i++) 19 b[i]=b1[lb-i-1]-48; 20 int lc=la*lb;
21 for(int i=0;i<la;i++) 22 { 23 for(int j=0;j<lb;j++) 24 { 25 ans[i+j]+=(a[i]*b[j]); 26 x=(ans[i+j])/10; 27 ans[i+j]=ans[i+j]%10; 28 ans[i+j+1]+=x; 29 } 30 } 31 int flag=0; 32 for(int i=lc;i>=0;i--)
33 { 34 if(ans[i]==0&&flag==0&&i>0) 35 continue; 36 else flag=1; 37 printf("%d",ans[i]); 38 } 39 return 0; 40 }

P1303 A*B Problem