洛谷 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: 最终,他因此没能与理想 ...
随机推荐
- React & search & keyboard ghost
React & search & keyboard ghost DOM events https://www.w3schools.com/jsref/dom_obj_event.asp ...
- 【扫描线】Educational Codeforces Round 4 D. The Union of k-Segments
http://codeforces.com/contest/612/problem/D [题解] http://blog.csdn.net/strokess/article/details/52248 ...
- operamasks—omGrid/omBorderLayout的混合使用
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test.aspx.cs&q ...
- Ubuntu 16.04在搭建Redis Cluster搭建时,使用gem install redis时出现:ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /var/lib/gems/2.3.0 directory.
注意:千万不要使用sudo来执行gem install redis. 解决方法: sudo apt-get update sudo apt-get install git-core curl zlib ...
- JSP的调试
以下内容引用自http://wiki.jikexueyuan.com/project/jsp/debugging.html: 一.使用System.out.println() System.out.p ...
- [Java Sprint] Spring XML Configuration : Constructor Injection Demo
Previous we see how to do Setter injection: https://www.cnblogs.com/Answer1215/p/9472117.html Now le ...
- C#如何让Listbox支持多选
把SelectionMode改成MultiExtended
- 使用Scroller制作滑块开关ToggleButton
Scroller这个类在自己定义view中使用的还算是非常频繁的,和它名字一样.我们通常是在控制滑动的时候使用Scroller,以便让view滑动起来不那么生硬.在官方的解释上,Scroller是一个 ...
- 记录一次node中台转发表单上传文件到后台过程
首发掘金 记录一次node中台转发表单上传文件到后台过程 本篇跟掘金为同一个作者leung 公司几个项目都是三层架构模式即前台,中台(中间层),后台.前台微信端公众号使用vue框架,后台管理前端使 ...
- chosen.jquery.js 搜索框只能从头匹配的解决思路+方法
chosen.jquery.js 搜索框只能从头匹配的解决思路+方法 心急者请直接看下方 总结 ,由于本问题未能找到直接答案,所以只能通过修改源码解决.故将修改源码思路贴出来供大家参考,在遇到其他改源 ...