[note]高精度模板
高精度模板
先定义一个struct
struct gj{
int l,s[N];
bool fh;
void Print(){
if(fh)putchar('-');
for(int i=l;i>=1;i--)printf("%d",s[i]);
puts("");
}
}blank;
高精+高精
加之前判断一下符号
一负一正转成减法
gj operator +(gj x,gj y){
gj z=blank;z.l=max(x.l,y.l);
for(int i=1;i<=z.l;i++){
z.s[i]+=x.s[i]+y.s[i];
if(z.s[i]>9)z.s[i+1]++,z.s[i]-=10;
}
if(z.s[z.l+1])z.l++;
return z;
}
高精-高精
gj operator -(gj x,gj y){
gj z=blank;z.l=max(x.l,y.l);
for(int i=z.l;i>=1;i--){
if(x.s[i]==y.s[i])continue;
if(x.s[i]<y.s[i])swap(x,y),z.fh=1;
break;
}
for(int i=1;i<=z.l;i++){
z.s[i]+=x.s[i]-y.s[i];
if(z.s[i]<0)z.s[i]+=10,z.s[i+1]--;
}
while(!z.s[z.l]&&z.l>1)z.l--;
return z;
}
高精*高精
gj operator *(gj x,gj y){
gj z=blank;z.l=x.l+y.l;
for(int i=1;i<=x.l;i++){
int jw=0;
for(int j=1;j<=y.l;j++){
z.s[i+j-1]+=x.s[i]*y.s[j]+jw;
jw=z.s[i+j-1]/10;
z.s[i+j-1]%=10;
}
z.s[i+b.l]=jw;
}
while(z.l>1&&!z.s[z.l])z.l--;
return z;
}
[note]高精度模板的更多相关文章
- [Template]高精度模板
重新写一下高精度模板(不要问我为什么) 自认为代码风格比较漂亮(雾 如果有更好的写法欢迎赐教 封装结构体big B是压位用的进制,W是每位长度 size表示长度,d[]就是保存的数字,倒着保存,从1开 ...
- C++高精度模板
原文地址:http://blog.csdn.net/wall_f/article/details/8373395 原文只附代码,没有解析,本文增加了一些对代码的解释. 请注意:本模板不涉及实数运算与负 ...
- 高精度模板 支持各种运算 c++
绪言 自从有了高精度模板,妈妈再也不用怕我不会打高精度了! 代码 代码长度与日俱增啊~~~ #include<iostream> #include<cstring> #incl ...
- 高精度模板 Luogu P1932 A+B & A-B & A*B & A/B Problem
P1932 A+B & A-B & A*B & A/B Problem 题目背景 这个题目很新颖吧!!! 题目描述 求A.B的和差积商余! 输入输出格式 输入格式: 两个数两行 ...
- Java 大数、高精度模板
介绍: java中用于操作大数的类主要有两个,一个是BigInteger,代表大整数类用于对大整数进行操作,另一个是BigDecimal,代表高精度类,用于对比较大或精度比较高的浮点型数据进行操作.因 ...
- JAVA高精度模板
刚开始还坚持用C++写高精来着,后来发现JAVA写高精方便太多了,所以也来学习一下JAVA高精度的模板. 参考:https://www.cnblogs.com/imzscilovecode/p/883 ...
- 高精度模板 洛谷Luogu P1932 A+B & A-B & A*B & A/B Problem
P1932 A+B & A-B & A*B & A/B Problem 题目背景 这个题目很新颖吧!!! 题目描述 求A.B的和差积商余! 输入输出格式 输入格式: 两个数两行 ...
- [SinGuLaRiTy] 复习模板-高精度模板
[SinGuLaRiTy-1042] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 结构体封装 //高精度运算 注意%I64d与%lld # ...
- XDOJ 1046 - 高精度模板综合测试 - [高精度模板]
题目链接:http://acm.xidian.edu.cn/problem.php?id=1046 题目描述 请输出两个数的和,差,积,商,取余.注意不要有前导零. 输入 多组数据,每组数据是两个整数 ...
随机推荐
- 配置php扩展redis
环境说明: 系统版本 CentOS 6.9 x86_64 软件版本 nginx-1.12.2 php-5.5.38 yum安装redis3.2.11 php扩展 ...
- 2017.7.10 Redis报错:DENIED Redis is running in protected mode
参考来自: java 客户端链接不上redis解决方案 DENIED Redis is running in protected mode 完整错误信息: Caused by: redis.clien ...
- 持久化配置管理 diamond 使用简介
本次为大家介绍diamond的概况和快速使用. 一.概况 diamond是淘宝内部使用的一个管理持久配置的系统,它的特点是简单.可靠.易用,目前淘宝内部绝大多数系统的配置,由diamond来进行统一管 ...
- charles抓https包
Charles是一款非常好用的抓包工具,有Window,Linux,Mac OS三个版本,个人觉得比shark和TCPDump好用多了. 闲话不多说,公司将服务从http转到https,导致今天因为抓 ...
- Go语言格式化字符
https://github.com/polaris1119/The-Golang-Standard-Library-by-Example/blob/master/chapter01/01.3.md
- Laravel之任务调度
一.基本简介 任务调度定义在app/Console/Kernel.php 文件的schedule 方法中,该方法中已经包含了一个示例.你可以自由地添加你需要的调度任务到Schedule 对象. 二.开 ...
- 学习Opencv 2.4.9(二) ---操作像素
作者:咕唧咕唧liukun321 来自:http://blog.csdn.net/liukun321 本质上说一张图像就是由数值组成的矩阵.Opencv 2.x由 cv::Mat 这个数据结构来表示一 ...
- LeetCode-Minimum Window Substring -- 窗口问题
题目描述 Given a string S and a string T, find the minimum window in S which will contain all the charac ...
- BZOJ 1012 线段树||单调队列
非常裸的线段树 || 单调队列: 假设一个节点在队列中既没有时间优势(早点入队)也没有值优势(值更大),那么显然不管在如何的情况下都不会被选为最大值. 既然它仅仅在末尾选.那么自然能够满足以上的条件 ...
- java 乱码问题解决思路
"编码一致的条件下,在处理运行正常的情况下,是不会出现乱码的",记住这句金言. 如上所说,如果编码一致是不会出现这种乱码问题,所以解决办法就是仔细再仔细的检查所设置的编码是否是一致 ...