【洛谷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来表示.空格周围的棋子可以移到空格中.要求解的问题是:给 ... 
随机推荐
- Linux内存管理 (16)内存规整
			专题:Linux内存管理专题 关键词:内存规整.页面迁移.pageblock.MIGRATE_TYPES. 内存碎片的产生:伙伴系统以页为单位进行管理,经过大量申请释放,造成大量离散且不连续的页面.这 ... 
- yafu安装使用方法以及mismatched parens解决方法
			yafu用于自动整数因式分解,在RSA中,当p.q的取值差异过大或过于相近的时候,使用yafu可以快速的把n值分解出p.q值,原理是使用Fermat方法与Pollard rho方法等. 再摘录官方的一 ... 
- 基于 WebGL 3D 的 HTML5 档案馆可视化管理系统
			前言 档案管理系统是通过建立统一的标准以规范整个文件管理,包括规范各业务系统的文件管理的完整的档案资源信息共享服务平台,主要实现档案流水化采集功能.为企事业单位的档案现代化管理,提供完整的解决方案,档 ... 
- .netcore mvc docker环境jenkins一键部署(DevOps)
			[前言] DevOps方面的文章很早之前就想分享了,挤出一点时间把前段时间搭建的一些提高开发效率的东西给大家分享一下吧. 本文介绍了一个.netcore mvc web项目,从项目push到githu ... 
- 简单介绍Excel单元格行列指示的实现原理(俗称聚光灯功能)
			原始出处:www.cnblogs.com/Charltsing/p/CellLight.html QQ:564955427 Excel单元格行列指示的实现原理(俗称聚光灯功能) 单元格行列指示功能在录 ... 
- GET与POST类型接口
			工作当中经常用到这两种类型的接口,一直对它们两个的区别一知半解,并不能从原理上说出区别. GET和POST最直观的区别应该就是GET将url包含在参数当中,POST通过request body(请求主 ... 
- 播放器更改语言归属地后Cnario player软件无法启动的问题
			打开系统运行,输入regedit,进入注册表编辑器. 找到HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\C-nario\Player下面culture 的值,删除即可 ... 
- P2256 一中校运会之百米跑(map映射加并查集)
			真心水,也许只有我这样的蒟蒻能做这种题了吧.用STL中的map将所有人的名字映射成一个数字,然后就是并查集的裸题 #include<bits/stdc++.h> using namespa ... 
- 为什么String被设计为不可变?是否真的不可变?
			1 对象不可变定义 不可变对象是指对象的状态在被初始化以后,在整个对象的生命周期内,不可改变. 2 如何不可变 通常情况下,在java中通过以下步骤实现不可变 对于属性不提供设值方法 所有的属性定义为 ... 
- spring cloud实战与思考(二) 微服务之间通过fiegn上传一组文件(上)
			需求场景: 微服务之间调用接口一次性上传多个文件. 上传文件的同时附带其他参数. 多个文件能有效的区分开,以便进行不同处理. Spring cloud的微服务之间接口调用使用Feign.原装的Feig ... 
