题目描述

高精度减法

输入输出格式

输入格式:

两个整数a,b(第二个可能比第一个大)

输出格式:

结果(是负数要输出负号)

输入输出样例

输入样例#1:

2
1
输出样例#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 高精度减法(模板)的更多相关文章

  1. 【洛谷P2142 高精度减法】

    题目描述 高精度减法 输入输出格式 输入格式: 两个整数a,b(第二个可能比第一个大) 输出格式: 结果(是负数要输出负号) 输入输出样例 输入样例#1: 复制 2 1 输出样例#1: 复制 1 说明 ...

  2. 洛谷P2142 高精度减法 题解

    想找原题请点击这里:传送门 原题: 题目描述 高精度减法 输入格式 两个整数a,b(第二个可能比第一个大) 输出格式 结果(是负数要输出负号) 输入输出样例 输入 复制 输出 复制 说明/提示 %数据 ...

  3. 【洛谷P3369】【模板】普通平衡树题解

    [洛谷P3369][模板]普通平衡树题解 题目链接 题意: 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:1. 插入x数2. 删除x数(若有多个相同的数,因只删除一个)3 ...

  4. 【洛谷p2142】高精度减法

    高精度减法第一遍没有过 高精度减法[传送门] 洛谷算法标签: 总之技术都在高精上了吧. 附代码: #include<iostream> #include<cstdio> #in ...

  5. 【洛谷4721】【模板】分治FFT(CDQ分治_NTT)

    题目: 洛谷 4721 分析: 我觉得这个 "分治 FFT " 不能算一种特殊的 FFT ,只是 CDQ 分治里套了个用 FFT (或 NTT)计算的过程,二者是并列关系而不是偏正 ...

  6. 【洛谷3865】 【模板】ST表(猫树)

    传送门 洛谷 Solution 实测跑的比ST表快!!! 这个东西也是\(O(1)\)的,不会可以看我上一篇Blog 代码实现 代码戳这里

  7. P2142 高精度减法

    题目描述 高精度减法 输入输出格式 输入格式: 两个整数a,b(第二个可能比第一个大) 输出格式: 结果(是负数要输出负号) 输入输出样例 输入样例#1: 2 1 输出样例#1: 1 说明 20%数据 ...

  8. 洛谷 P3376 【【模板】网络最大流】

    题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行包含三个正整数ui. ...

  9. 洛谷 P4779 :【模板】单源最短路径(标准版)(Dijkstra+堆优化+链式前向星)

    题目背景 2018 年 7 月 19 日,某位同学在 NOI Day 1 T1 归程 一题里非常熟练地使用了一个广为人知的算法求最短路. 然后呢? 100→60: Ag→Cu: 最终,他因此没能与理想 ...

随机推荐

  1. [OJ#39]左手右手

    [OJ#39]左手右手 试题描述 有 n 个人,每个人左右手上各写着一个整数.对于编号为 a 的人和编号为 b 的人, a 对 b 的好感度等于 a 左手上写的数字乘 b 右手上写的数字,a 和 b  ...

  2. Java高概率面试题目—finally

    在Java面试中关于finally的面试题目出现的概率非常高,而且一旦面试官问起绝不会是蜻蜓点水,而是会向你发起层层递进地“连环问”,并且回答这系列问题常常需要代码的辅助,可谓考验基础的面试利题.究竟 ...

  3. Oracle表空间 ORA-01653:

    --1.查看表空间USERS使用情况SELECT T.TABLESPACE_NAME,D.FILE_NAME, D.AUTOEXTENSIBLE,D.BYTES,D.MAXBYTES,D.STATUS ...

  4. 阿里云CentOS7.3搭建多用户私有git服务器(从安装git开始)

    起因 自己会有练手的不敢公开的项目,就自己搭建个服务器放自己的渣代码了. 在经历了连不上服务器.没有访问权限.没法提交以后,我打通了任督二脉. 我这个git服务器适合条件:1.就那么几个人小项目,不是 ...

  5. Spring——IoC

    控制反转(Inversion ofControl,英文缩写为IoC)是一种能够解耦的方法,不是什么技术.是一种思想,也是轻量级的Spring框架的核心.控制反转一般分为两种类型.依赖注入(Depend ...

  6. R语言pdf输出中文乱码处理

    1.使用基础包.使用函数pdf()输出 在使用pdf()函数时,要输出中文,仅仅有一种字体可选. 样例: pdf("chinese.pdf",family="GB1&qu ...

  7. Linux操作系统改动PATH的方法

    1. 暂时改动: 使用export.比如#export PATH=$PATH:/etc/apache/bin 2. 针对用户的改动: vi ~/.bash_profile 增加:export PATH ...

  8. [计算机联网故障]WIFI接入正常,但是上网不正常(两种情况)

    今天同事拿来一个笔记本,说是连接WIFI都正常,但是就是无法上网.换了单位的wifi和他自己的手机共享wifi都是无法上网. 我首先检查了一下IP地址设置,看是否指定了IP.没有. 然后取消IPv6. ...

  9. go10---struct

    package main import ( "fmt" ) type test struct{} //空的结构体 type person struct { name string ...

  10. Linux ALSA声卡驱动之一:ALSA架构简介【转】

    本文转载自:http://blog.csdn.net/droidphone/article/details/6271122 声明:本博内容均由http://blog.csdn.net/droidpho ...