【洛谷P1303A*Bprublem】
题目描述
求两数的积。
输入输出格式
输入格式:
两行,两个数。
输出格式:
积
输入输出样例
1
2
2
说明
每个数字不超过10^2000,需用高精
这道题还是比较良心的,毕竟在说明中提示了要用高精,那么就要我们用到高精的乘法算法,代码如下:
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
#include<iomanip>//本蒟蒻习惯打上所有头文件;
using namespace std;
int main()
{
char a1[],b1[];
int a[]={},b[]={},c[]={},lena,lenb,lenc,i,j,x;//把a,b,c,数组清零,也可以用memset(a/b/c,0,sizeof(a/b/c));x代表进位数。
scanf("%s",a1);
scanf("%s",b1);//对于洛谷的输入格式,用gets可能会卡bug。
lena=strlen(a1);lenb=strlen(b1);//计算a1、b1的长度,便于后面的循环和进位。
for(i=;i<=lena-;i++) a[lena-i]=a1[i]-;
for(i=;i<=lenb-;++i) b[lenb-i]=b1[i]-;//把字符数组中的数存在a、b数组中,可以像本代码中直接对字符进行计算,也可以用强制类型转换来转换。
for(i=;i<=lena;++i)//外循环用于对第一个数的每一个数进行计算。
{
x=;//一定要记住把进位数在内循环内清零,否则将会出现意想不到的效果。
for(j=;j<=lenb;j++)//内循环用于对第二个数的计算。
{
c[i+j-]=a[i]*b[j]+x+c[i+j-];//把第i+j-1个数赋值,(至于为啥是第i+j-1个数,可以自己推一推,直接记住就行)它的值就是第一个数的第i位于第二个数的第j位之积加上进位的数(包括上一位进的数与上一个循环进的数)。
x=c[i+j-]/;//进位处理,取该数的进位数。
c[i+j-]%=;//保留个位数。
}
c[i+lenb]=x;//将内循环没有进完的数进到下一个循环内。
}
lenc=lena+lenb;//计算c数组的最大长度。
while(c[lenc]==&&lenc>)//c[lenc]==是对0的判定,如果该位不是0,且满足lenc>(希望有大神指点一下为什么要判定这个,我将这个去掉后也没有什么区别),就输出。
lenc--;//保证循环开始时不是0。
for(i=lenc;i>=;i--)//循环输出c数组。
cout<<c[i];
cout<<endl;
return ;//好习惯别忘记。
}
高精乘法计算就是把我们平时用竖式做的乘法转化成更智障的算法,例如53*79:
5 3
x 7 9
2 7
+ 4 5
+ 2 1
+3 5
4 1 8 7
通过程序就可以处理10的n次方之间的乘法,真的很实用。
【洛谷P1303A*Bprublem】的更多相关文章
- 洛谷1640 bzoj1854游戏 匈牙利就是又短又快
		
bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...
 - 洛谷P1352  codevs1380 没有上司的舞会——S.B.S.
		
没有上司的舞会 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...
 - 洛谷P1108 低价购买[DP | LIS方案数]
		
题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...
 - 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP
		
题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...
 - 洛谷P1710 地铁涨价
		
P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交 讨论 题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...
 - 洛谷P1371 NOI元丹
		
P1371 NOI元丹 71通过 394提交 题目提供者洛谷OnlineJudge 标签云端评测 难度普及/提高- 提交 讨论 题解 最新讨论 我觉得不需要讨论O long long 不够 没有取 ...
 - 洛谷P1538迎春舞会之数字舞蹈
		
题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...
 - 洛谷八月月赛Round1凄惨记
		
个人背景: 上午9:30放学,然后因为学校举办读书工程跟同学去书城选书,中午回来开始打比赛,下午又回老家,中间抽出一点时间调代码,回家已经8:50了 也许是7月月赛时“连蒙带骗”AK的太幸运然而因同学 ...
 - 洛谷 P1379 八数码难题 Label:判重&&bfs
		
特别声明:紫书上抄来的代码,详见P198 题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示.空格周围的棋子可以移到空格中.要求解的问题是:给 ...
 
随机推荐
- 授权普通非DBA用户可以有权限查看执行计划的方法
			
drop table PLAN_TABLE; 删除原plan表 执行ORACLE自带的创建脚本 @?/rdbms/admin/utlxplan.sql 创建同义词 create or re ...
 - 一 Struts2 开发流程
			
SSH与SSM简介SSM:Spring+SpringMVC+MybatisSSH:Struts2+Hibernate+SpringStruts2:是侧重于控制层的框架Hibernate:是一个ORM( ...
 - (四)Exploring Your Cluster
			
The REST API Now that we have our node (and cluster) up and running, the next step is to understand ...
 - Spring Security(三十一):9.6 Localization(本地化)
			
Spring Security supports localization of exception messages that end users are likely to see. If you ...
 - JS深度判断两个对象字段相同
			
代码: /** * 判断此对象是否是Object类型 * @param {Object} obj */ function isObject(obj){ return Object.prototype. ...
 - DP求树的重心
			
#include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> ...
 - react混合开发APP,资源分享
			
第一个: 链接:https://pan.baidu.com/s/1KdIs8EUcB9YTuK9VW1dC7g 密码:b68m 第二个: 链接:https://pan.baidu.com/s/1mi7 ...
 - idea的一些好用的第三方插件
			
用了Idea真的回不去Eclipse了,安利一波. 这里记录一些好用的插件. GenerateAllSetter 这个插件是用在写代码的时候调用Setter的时候能一次性把实体类中的所有Setter方 ...
 - Java 显示读取properties 乱码解决方案
			
项目开发时,在配置springmvc 校验错误提示信息时,配置到properties的中文,在前端取出时,显示为乱码,可以确定properties 配置文件已经被设为UTF-8编码,在springmv ...
 - Pyspark 使用 Spark Udf 的一些经验
			
起初开始写一些 udf 的时候感觉有一些奇怪,在 spark 的计算中,一般通过转换(Transformation) 在不触发计算(Action) 的情况下就行一些预处理.udf 就是这样一个好用的东 ...