题目描述
求两数的积。
输入输出格式
输入格式:
两个数
输出格式:
积
输入输出样例
输入样例#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 }
时间: 2024-10-25 00:31:29