18.2.28 codevs3115 高精度练习之乘法

题目描述 Description

给出两个正整数A和B,计算A*B的值。保证A和B的位数不超过500位。

输入描述 Input Description

读入两个用空格隔开的正整数

输出描述 Output Description

输出A*B的值

样例输入 Sample Input

3 12

样例输出 Sample Output

36

数据范围及提示 Data Size & Hint

两个正整数的位数不超过500位

 1 #include <iostream>
 2 #include <string.h>
 3 #include <math.h>
 4
 5 using namespace std;
 6
 7 int main()
 8 {
 9     char a[600],b[600];//计算a*b
10     cin>>a>>b;
11     //scanf("%s %s",la,lb);
12     int la=strlen(a),lb=strlen(b),l=0;
13     int an[600],bn[600];
14     if(la>lb)
15     {
16         for(int i=la-1;i>=la-lb;i--)
17             bn[i]=b[i-(la-lb)]-‘0‘;
18         for(int i=0;i<=la-lb-1;i++)
19             bn[i]=0;
20         for(int i=0;i<=la-1;i++)
21             an[i]=a[i]-‘0‘;
22         l=la-1;
23     }
24     else if(la<lb)
25     {
26         for(int i=lb-1;i>=lb-la;i--)
27             an[i]=a[i-(lb-la)]-‘0‘;
28         for(int i=0;i<=lb-la-1;i++)
29             an[i]=0;
30         for(int i=0;i<=lb-1;i++)
31             bn[i]=b[i]-‘0‘;
32         l=lb-1;
33     }
34     else
35     {
36         for(int i=0;i<=la-1;i++)
37             an[i]=a[i]-‘0‘;
38         for(int i=0;i<=lb-1;i++)
39             bn[i]=b[i]-‘0‘;
40         l=la-1;
41     }
42     int a0[600],b0[600];
43     for(int i=0;i<=l;i++)
44     {
45         a0[i]=an[l-i];
46         b0[i]=bn[l-i];
47     }
48     int mul[600]={0};
49     for(int j=0;j<=l;j++)
50         for(int i=0;i<=l;i++)
51         {
52             mul[i+j]+=a0[i]*b0[j];
53                 if(i+j!=2*l)
54                 {
55                     while(mul[i+j]>=10)
56                 {
57                     mul[i+j]-=10;
58                     mul[i+j+1]++;
59                 }
60                 }
61
62         }
63     int flag=0;
64         for(int i=2*l;i>=0;i--)
65         {
66             if(mul[i]!=0)
67                 flag=1;
68             if(flag)
69             cout<<mul[i];
70         }
71         cout<<endl;
72     return 0;
73 }

居然wa了好几次……

最后没耐心了 用的加法模板改的

比较繁

原文地址:https://www.cnblogs.com/yalphait/p/8486316.html

时间: 2024-11-06 07:44:03

18.2.28 codevs3115 高精度练习之乘法的相关文章

18.2.28 codevs3115 高精度练习之减法

题目描述 Description 给出两个正整数A和B,计算A-B的值.保证A和B的位数不超过500位. 输入描述 Input Description 读入两个用空格隔开的正整数 输出描述 Output Description 输出A-B的值 样例输入 Sample Input 3 12 样例输出 Sample Output -9 数据范围及提示 Data Size & Hint 两个正整数的位数不超过500位 1 #include <iostream> 2 #include <

3117 高精度练习之乘法

3117 高精度练习之乘法 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 给出两个正整数A和B,计算A*B的值.保证A和B的位数不超过500位. 输入描述 Input Description 读入两个用空格隔开的正整数 输出描述 Output Description 输出A*B的值 样例输入 Sample Input 3 12 样例输出 Sample Output 36 数据范围及提示 Data Size & Hint

wiki oi3117 高精度练习之乘法

题目描述 Description 给出两个正整数A和B,计算A*B的值.保证A和B的位数不超过500位. 输入描述 Input Description 读入两个用空格隔开的正整数 输出描述 Output Description 输出A*B的值 样例输入 Sample Input 3 12 样例输出 Sample Output 36 数据范围及提示 Data Size & Hint 两个正整数的位数不超过500位 代码: 1 #include<stdio.h> 2 #include<

高精度 加法 减法 乘法 除法 整合

此文为博主原创,转载时请通知博主,并把原文链接放在正文醒目位置. 很久不写高精了,虽说我觉得高精也不会考...还是稍微写一写,防止手生. 两个小时过去了…… 集合了高精+高精.高精-高精.高精*高精.高精/低精. 目前还没发现什么错误,应该可以应付各种情况. 本来想允许它读入负数的,结果发现减法读负数太麻烦了...所以只能读非负数. 下面贴代码. 1 #include<cstdio> 2 #include<algorithm> 3 #include<cmath> 4 #

18.04.28 17年程设考试题

编程填空部分 A01:编程填空:统计动物数量 描述 代码填空,使得程序能够自动统计当前各种动物的数量 #include <iostream> using namespace std; // 在此处补充你的代码 void print() { cout << Animal::number << " animals in the zoo, " << Dog::number << " of them are dogs, &q

【算法学习笔记】35.高精度 竖式乘法 SJTU OJ 1274

Description 输入a,b 输出a*b的竖式乘法,格式见样例. Sample Input1 11 9 Sample Output1 11 9 -- 99 Sample Input2 10 10 Sample Output2 10 10 --- 100 Sample Input3 101 101 Sample Output3 101 101 ----- 101 101 ----- 10201 Sample Input4 10086 2 Sample Output4 2 10086 ----

POJ 1001 解题报告 高精度大整数乘法模版

题目是POJ1001 Exponentiation  虽然是小数的幂 最终还是转化为大整数的乘法 这道题要考虑的边界情况比较多 做这道题的时候,我分析了 网上的两个解题报告,发现都有错误,说明OJ对于错误的判断还不够严厉. 对边界情况的讨论其实应该是思维严密的表现,当然这并不能表明我写的一点错误都没有,只是多多分析一下还是很有好处的. #include <iostream> #include <fstream> #include <string> #include &l

QVM 实操记 - 18.12.28

视频回放地址:https://i.iamlj.com/mp4/QVM-IMC-12.27-1080P.mp4 目录 目录 常规开发部署流程 准备工作 开发准备 网站部署 操作步骤 重装系统 LANP环境安装 安装 WordPress Vhost配置[可选] FAQ 购买的主机怎么没 IP SSH 登录不上 端口 Ping 不通,通常是80或其他端口 其他业务方面的需求 密码怎么没了,登录 怎么重装系统啊,有没有 xx 最新的版本啊 重装系统,怎么还不进行啊,怎么需要开机? SSH 密钥是什么,怎

【Django】Session -- 2019-08-08 18:01:28

目录 介绍 Django中操作Session 原文: http://106.13.73.98/__/40/ @ 介绍 Cookie虽然在一定程度上解决了"保持状态"的需求,但是由于Cookie本身最大支持4096字节,以及Cookie本身保存在客户端,可能被拦截或窃取,因此就需要有一种新的东西,它能支持更多的字节,并且它保存在服务器,有较高的安全性.这就是Session. 问题来了,基于HTTP协议的无状态特征,服务器根本就不知道访问者是"谁",因此上述的Cooki