想找原题请点击这里:传送门

原题:

题目描述
高精度减法 输入格式
两个整数a,b(第二个可能比第一个大) 输出格式
结果(是负数要输出负号) 输入输出样例
输入 复制 输出 复制 说明/提示
%数据a,b在long long范围内 %数据0 < a,b <10^10086 (此处^为乘方)

再简单讲一下高精度运算的原理。

为什么要产生高精度运算?

由于c++的数据结构非常严谨,然而c++提供的储存数的数据结构只有int和long long,当则两种数据类型进行运算时当储存数据过大都会导致溢出问题。

所以高精度就诞生了!

高精度大概流程:

1.将要进行特定运算的两数以字符串形势储存起来

2.将字符串中储存的数从最低位到最高位(最高的最高位)顺序用int类型存起来

3.进行运算

4.进行每位的进位和最高位更新

5.去掉前导零

那么代码如下:

 #include<iostream>
#include<cstdio>
#include<cstring>
#define N 10087
using namespace std;
char a[N];
char b[N];
char ta[N];
char ans[N];
int aa[N],bb[N],ansa[N];
int tb;
bool flag;
int main()
{
scanf("%s",&a);
scanf("%s",&b);
int la=strlen(a),lb=strlen(b);
if(lb>la) {
flag=true;
strcpy(ta,a);strcpy(a,b);strcpy(b,ta);
tb=la;la=lb;lb=tb;
}
else{
if(la==lb){
for(int i=;i<la;i++){
if(a[i]==b[i]){
continue;
}
if(a[i]>b[i]){
break;
}
flag=true;
strcpy(ta,a);strcpy(a,b);strcpy(b,ta);
tb=la;la=lb;lb=tb;
break;
}
}
}
for(int i=;i<=la;i++){
aa[i]=a[la-i]-'';
}
for(int i=;i<=lb;i++){
bb[i]=b[lb-i]-'';
}
int mm=max(la,lb);
for(int i=;i<=mm;i++){
ansa[i]+=(aa[i]-bb[i]);
if(ansa[i]<){
ansa[i]+=;
ansa[i+]--;
}
}
for(int i=mm;i>=;i--){
if(ansa[i]){
break;
}
mm--;
}
if(flag) printf("-");
for(int i=mm;i>=;i--){
printf("%d",ansa[i]);
}
return ;
}

洛谷P2142 高精度减法 题解的更多相关文章

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

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

  2. 洛谷 P2142 高精度减法(模板)

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

  3. 洛谷P2832 行路难 分析+题解代码【玄学最短路】

    洛谷P2832 行路难 分析+题解代码[玄学最短路] 题目背景: 小X来到了山区,领略山林之乐.在他乐以忘忧之时,他突然发现,开学迫在眉睫 题目描述: 山区有n座山.山之间有m条羊肠小道,每条连接两座 ...

  4. 【洛谷P3960】列队题解

    [洛谷P3960]列队题解 题目链接 题意: Sylvia 是一个热爱学习的女孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Sylvia 所在的方阵中有 n×m ...

  5. 洛谷P2312 解方程题解

    洛谷P2312 解方程题解 题目描述 已知多项式方程: \[a_0+a_1x+a_2x^2+\cdots+a_nx^n=0\] 求这个方程在 \([1,m]\) 内的整数解(\(n\) 和 \(m\) ...

  6. 洛谷P1577 切绳子题解

    洛谷P1577 切绳子题解 题目描述 有N条绳子,它们的长度分别为Li.如果从它们中切割出K条长度相同的 绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位(直接舍掉2为后的小数). 输入输出格 ...

  7. 洛谷P2507 [SCOI2008]配对 题解(dp+贪心)

    洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [S ...

  8. 洛谷 P1220 关路灯 题解

    Description 有 $n$ 盏路灯,每盏路灯有坐标(单位 $m$)和功率(单位 $J$).从第 $c$ 盏路灯开始,可以向左或向右关闭路灯.速度是 $1m/s$.求所有路灯的最少耗电.输入保证 ...

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

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

随机推荐

  1. 通过maven 打docker 镜像包,出错ADD failed: stat /var/lib/docker/tmp/docker-builderXXXXXX: no such file or dir

    出现问题的原因很简单,没有maven打包生成jar包.

  2. java &&和&与逻辑运算区别

    二者都表示与运算,同真为真,遇假即假 && 具有短路功能,前面为false后面不在预算直接表达式为false; &还可以用作位运算符,当&操作符两边的表达式不是 boo ...

  3. Bugku-CTF加密篇之python(N1CTF) [HRlgC2ReHW1/WRk2DikfNBo1dl1XZBJrRR9qECMNOjNHDktBJSxcI1hZIz07YjVx]

    python(N1CTF)  

  4. java的动态绑定和多态

    public class Shape { public void area() { System.out.println("各种形状的面积..."); } public stati ...

  5. n个点的最长公共子串(别人的模板) poj 3080

    没有理解代码.单纯记模板 题意:找最长的公共字串,长度相同就找字典序最小的(这一点wa了我13遍!!!)题解:kmp或者直接暴力列举当公共子串长度小于3时,有特判 #include<map> ...

  6. 线段树+扫描线 NAIPC 2019 Intersecting Rectangles

    你看看你有多菜,一点线段树的小小的运用,就不会写了: 题意:如果矩阵有交集,输出1,否则输出0(不包含内嵌): 思路:本题求交集,还得不包括内嵌的情况: 做过一道是求面积的题.跟这道类似,但在这里定义 ...

  7. 前端——语言——Core JS——《The good part》读书笔记——第九,十章节(Style,Good Features)

    第九章节 本章节不再介绍知识点,而是作者在提倡大家培养良好的编码习惯,使用Good parts of JS,避免Bad parts of JS.它是一篇文章. 本文的1-3段阐述应用在开发过程中总会遇 ...

  8. 2019冬季PAT甲级第二题

    #define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h> using namespace std; typedef struct{ int ...

  9. Go文件拷贝

    package main import ( "os" "io" "fmt" "io/ioutil" ) func mai ...

  10. 每天进步一点点------Sobel算子(3)基于彩色图像边缘差分的运动目标检测算法

    摘  要: 针对目前常用的运动目标提取易受到噪声影响.易出现阴影和误检漏检等情况,提出了一种基于Sobel算子的彩色边缘图像检测和帧差分相结合的检测方法.首先用Sobel算子提取视频流中连续4帧图像的 ...