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

原题:

题目描述
高精度减法 输入格式
两个整数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. C++ - cpprestsdk

    Windows 安装方法: CMake 1.32+,生成过程会将 vcpkg 下载好,配置到系统环境变量,然后用 vcpkg 安装依赖库(github 上有列出需要的依赖库). Github 上的示例 ...

  2. EVE-NG镜像模板资源占用统计

    转:http://www.emulatedlab.com/forum.php?mod=viewthread&tid=432&extra=page%3D1 EVE  Image fold ...

  3. 移动APP漏洞自动化检测平台建设

    移动APP漏洞自动化检测平台建设   前言:本文是<移动APP客户端安全笔记>系列原创文章中的第一篇,主要讲的是企业移动APP自动化漏洞检测平台建设,移动APP漏洞检测发展史与前沿技术,A ...

  4. java判断两个时间相差得天数

    方法一:通过Calendar类得日期比较,在这需要考虑闰年和平年,也要考虑跨年份 /** * date2比date1多的天数 * @param date1 * @param date2 * @retu ...

  5. JS高级---原型的简单的语法

    原型的简单的语法 构造函数,通过原型添加方法,以下语法,手动修改构造器的指向 实例化对象,并初始化,调用方法 <!DOCTYPE html> <html lang="en& ...

  6. Mysql主从复制,双主热备

    Mysql主从复制: 主从复制: 主机准备工作: 开启bin.Log 注意:server-id  是唯一的值 重启mysql:service mysql restart 查看是否开启成功: 查看当前状 ...

  7. pyinstaller 处理后程序找不到模块

    可将模块文件夹拷贝到当前文件夹中

  8. VS2013 Solution Explorer can not open

    Delete content under the path: C:\Users\username\AppData\Local\Microsoft\VisualStudio\12.0\Component ...

  9. netty(七)buffer源码学习2

    概述 文章主要介绍的是PoolArena,PoolChunk,PoolSubpage 三个类的源码 PoolArena PoolArena 是netty 的内存池实现类,通过预先申请一块大的空间,然后 ...

  10. onblur事件和onfocus事件失效

    先看onblur事件和onfocus事件的定义: <element onblur="SomeJavaScriptCode"> <element onfocus=& ...