题目描述
求两数的积。
输入输出格式
输入格式:
两个数
输出格式:
积
输入输出样例
输入样例#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 }
作者:自为风月马前卒
个人博客http://attack204.com//
出处:http://zwfymqz.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。