洛谷 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: 最终,他因此没能与理想 ...
随机推荐
- oracle spool
http://peter8015.iteye.com/blog/2082467 关于SPOOL(SPOOL是SQLPLUS的命令,不是SQL语法里面的东西.) 对于SPOOL数据的SQL,最好要自己定 ...
- hdu 3038带权并查集
#include<stdio.h> #include<string.h> #define N 200100 struct node { int x,count; }pre[N ...
- bzoj3304[Shoi2005]带限制的最长公共子序列 DP
题意:给出三个序列,求出前两个的公共子序列,且包含第三个序列,要求长度最长. 这道题目怎么做呢,f[i][j]表示a串1-i,b串1-j的最长,g[i][j]表示a串i-n,b串j-m最长, 那么只需 ...
- msp430入门学习00
在TI官网上找到MSP430的程序例程.数据手册.使用指南等文件.以MSP430F169为例,步骤如下: 1)进入ti官网:http://www.ti.com.cn/ 或者http://www.ti. ...
- hdu - 2066 一个人的旅行(基础最短路)
http://acm.hdu.edu.cn/showproblem.php?pid=2066 把与草儿相连的城市最短距离置为0,然后进行dijkstra,在t个城市里找出距离最近的一个即可. #inc ...
- POJ 1127_Jack Straws
%: 对于二维向量p1=(x1,y1),p2=(x2,y2),定义内积p1⋅p2=x1x2+y1y2,外积p1×p2=x1y2−y1x2,则判断点q是否在线段p1−p2上: 先利用外积判断q是否在直线 ...
- [bzoj4698][Sdoi2008]Sandy的卡片_后缀数组_二分/单调队列_双指针
Sandy的卡片 bzoj-4698 Sdoi-2008 题目大意:题目链接. 注释:略. 想法: 这个题跟一个Usaco的题特别像.我们把这些串差分 现在我们要求的就是公共子串且出现次数不少于$k$ ...
- linux 用 rsync 快速删除大量小文件
假设我们在目录 /tmp/to_delete 下有很多小文件 a1 a2 a3 f1 f2 f3 现在我们想快速的删除f 开头的文件. 如果文件量大,用rm 可能会失败,而且会很慢, 所以用rsync ...
- 【python自制】让大白成为你的个人助手!
我做这个软件就是要让卖萌进行究竟! 官方站点:http://www.jackeriss.com/companions.htm GitHub:https://github.com/Jackeriss/C ...
- Cocos2dx 小技巧(九)现成的粒子特效
和高中的她 差点儿相同有两三年没见面了吧.下午她正好来泉州.我俩出来一起吃了个饭. 怎么说呢,自从高中毕业后我俩的联系就少了非常多.大学期间也就见过两三面吧. 现在毕业也快一年了,她已是人妇,而我自己 ...