洛谷 P2142 高精度减法(模板)
题目描述
高精度减法
输入输出格式
输入格式:
两个整数a,b(第二个可能比第一个大)
输出格式:
结果(是负数要输出负号)
输入输出样例
2
1
1
说明
20%数据a,b在long long范围内
100%数据0<a,b<=10的10000次方
AC代码:
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
string a1,b1;
int a[],b[],c[];
int main()
{
cin >> a1 >> b1;//string不能用scanf
int lena = a1.length();
int lenb = b1.length();
for(int i = ;i < lena; i++)//倒着存数
a[lena-i] = a1[i] - ;
for(int j = ;j < lenb; j++)//倒着存数
b[lenb-j] = b1[j] - ;
if(lenb > lena) {//如果b比a数位多,说明结果为负
for(int i = ;i <= lenb; i++)
if(b[i] < a[i]) c[i] = b[i] + - a[i],b[i+]--;//借位
else c[i] = b[i] - a[i];
while(c[lenb] == && lenb != ) lenb--;//去0
printf("-");
for(int i = lenb;i >= ; i--)
printf("%d",c[i]);
return ;
}
if(lenb == lena) {
int aa = lena,bj = ;
while(aa>) {//判断a和b谁大
if(b[aa] > a[aa]){
bj = ;
break;
}
aa--;
}
if(bj) {//b大
for(int i = ;i <= lenb; i++)
if(b[i] < a[i]) c[i] = b[i] + - a[i],b[i+]--;//借位
else c[i] = b[i] - a[i];
while(c[lenb] == && lenb != ) lenb--;//去0
printf("-");
for(int i = lenb;i >= ; i--)
printf("%d",c[i]);
return ;
}
else {//a大
for(int i = ;i <= lena; i++)
if(a[i] < b[i]) c[i] = a[i] + -b[i],a[i+]--;//借位
else c[i] = a[i] - b[i];
while(c[lena] == && lena != ) lena--;//去0
for(int i = lena;i >= ; i--)
printf("%d",c[i]);
return ;
}
}
for(int i = ;i <= lena; i++)
if(a[i] < b[i]) c[i] = a[i] + - b[i],a[i+]--;//借位
else c[i] = a[i] - b[i];
while(c[lena] == && lena != ) lena--;//去0
for(int i = lena;i >= ; i--)
printf("%d",c[i]);
return ;
}
洛谷 P2142 高精度减法(模板)的更多相关文章
- 【洛谷P2142 高精度减法】
题目描述 高精度减法 输入输出格式 输入格式: 两个整数a,b(第二个可能比第一个大) 输出格式: 结果(是负数要输出负号) 输入输出样例 输入样例#1: 复制 2 1 输出样例#1: 复制 1 说明 ...
- 洛谷P2142 高精度减法 题解
想找原题请点击这里:传送门 原题: 题目描述 高精度减法 输入格式 两个整数a,b(第二个可能比第一个大) 输出格式 结果(是负数要输出负号) 输入输出样例 输入 复制 输出 复制 说明/提示 %数据 ...
- 【洛谷P3369】【模板】普通平衡树题解
[洛谷P3369][模板]普通平衡树题解 题目链接 题意: 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:1. 插入x数2. 删除x数(若有多个相同的数,因只删除一个)3 ...
- 【洛谷p2142】高精度减法
高精度减法第一遍没有过 高精度减法[传送门] 洛谷算法标签: 总之技术都在高精上了吧. 附代码: #include<iostream> #include<cstdio> #in ...
- 【洛谷4721】【模板】分治FFT(CDQ分治_NTT)
题目: 洛谷 4721 分析: 我觉得这个 "分治 FFT " 不能算一种特殊的 FFT ,只是 CDQ 分治里套了个用 FFT (或 NTT)计算的过程,二者是并列关系而不是偏正 ...
- 【洛谷3865】 【模板】ST表(猫树)
传送门 洛谷 Solution 实测跑的比ST表快!!! 这个东西也是\(O(1)\)的,不会可以看我上一篇Blog 代码实现 代码戳这里
- P2142 高精度减法
题目描述 高精度减法 输入输出格式 输入格式: 两个整数a,b(第二个可能比第一个大) 输出格式: 结果(是负数要输出负号) 输入输出样例 输入样例#1: 2 1 输出样例#1: 1 说明 20%数据 ...
- 洛谷 P3376 【【模板】网络最大流】
题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行包含三个正整数ui. ...
- 洛谷 P4779 :【模板】单源最短路径(标准版)(Dijkstra+堆优化+链式前向星)
题目背景 2018 年 7 月 19 日,某位同学在 NOI Day 1 T1 归程 一题里非常熟练地使用了一个广为人知的算法求最短路. 然后呢? 100→60: Ag→Cu: 最终,他因此没能与理想 ...
随机推荐
- [K/3Cloud] 创建一个单据转换插件
概念: 创建一个业务单据转换插件,在单据转换的各个时点干预单据转换的相关逻辑控制. 示例: 新建一个类,继承自单据转换插件基类Kingdee.BOS.Core.Metadata.ConvertElem ...
- msp430入门学习23
msp430的ADC(模数转换) msp430入门学习
- C#高级编程第9版 第一章 .NET体系结构 读后笔记
.NET的CLR把源代码编译为IL,然后又把IL编译为平台专用代码. IL总是即时编译的,这一点的理解上虽然明白.当用户操作C#开发的软件时,应该是操作已经编译好的程序.那么此时安装在客户机上的程序是 ...
- spring-kafka
spring-kafka 使用spring-kafka的小伙伴,看过来. 说明 因为spring-kafka封装的比较厉害,可能跟你实际使用起来有很大的差别. 一个简单的消费例子 在spring-bo ...
- 关于SQL命令中不等号(!=,<>)
比较两个表达式(比较运算符).当比较非空表达式时,如果左边操作数的数值不等于右边的操作数,则结果为 TRUE:否则结果为 FALSE.如果两个操作数中有一个或者两个都为 NULL,并且 SET ANS ...
- 我的arcgis培训照片7
来自:http://www.cioiot.com/successview-553-1.html
- Centos系统备份
使用root用户切换到根目录 然后,使用下面的命令备份完整的系统: tar cvpzf backup.tgz / --exclude=/proc --exclude=/lost+found --exc ...
- cmd-net命令详解
NET ViewNET UserNET UseNET TimeNet Start Net PauseNet ContinueNET StopNet StatisticsNet Share Net Se ...
- 卸载MySQL 5.0
昨天在Navicat for mysql中导入一个脚本,执行.出现乱码. 考虑到可能是版本号问题,就想卸载了又一次安装MYSQL,这一卸载倒是出了问题.导致安装的时候安装不上. 后来无意发现是卸载的时 ...
- Android Studio 1.x 使用问题汇总
Android Studio是谷歌于13年I/O大会推出的Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的Androi ...