洛谷 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: 最终,他因此没能与理想 ...
随机推荐
- Light oj-1004 - Monkey Banana Problem,数字三角形的变形版~
100 ...
- 讨论几种数据列Column的特性(上)
之前笔者写过一个系列<索引列的usable和visible>(http://space.itpub.net/17203031/viewspace-688135),详细讨论了索引列的usab ...
- 开车旅行(codevs 1199)
题目描述 Description 小A 和小B决定利用假期外出旅行,他们将想去的城市从1到N 编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市 i的海拔高度为Hi, ...
- [bzoj1895][Pku3580]supermemo_非旋转Treap
supermemo bzoj-1895 Pku-3580 题目大意:给定一个n个数的序列,需支持:区间加,区间翻转,区间平移,单点插入,单点删除,查询区间最小值. 注释:$1\le n\le 6.1\ ...
- SPOJ SUMPRO(数学)
题意: 给出一个数N,问所有满足n/x=y(此处为整除)的所有x*y的总和是多少.对答案mod(1e9+7). 1 <= T <= 500. 1 <= N <= 1e9. 分析 ...
- 在springBoot与quartz 整合中 @Transaction 失效
问题1::springBoot在与quartz 整合时,使用@Transaction 注解时事务失效 解决方案:创建一个类使用@component被spring管理 ,使用@Transaction标识 ...
- SecurityContextHolder.getContext().getAuthentication()为null的情况
原理: UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication() . ...
- java读取大文本文件
原文:http://blog.csdn.net/k21325/article/details/53886160 小文件当然可以直接读取所有,然后放到内存中,但是当文件很大的时候,这个方法就行不通了,内 ...
- symfony 参考
多语言存数据库 http://blog.elendev.com/development/php/symfony/use-a-database-as-translation-provider-in-sy ...
- [React] Make Compound React Components Flexible
Our current compound component implementation is great, but it's limited in that users cannot render ...