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

原题:

  1. 题目描述
  2. 高精度减法
  3.  
  4. 输入格式
  5. 两个整数a,b(第二个可能比第一个大)
  6.  
  7. 输出格式
  8. 结果(是负数要输出负号)
  9.  
  10. 输入输出样例
  11. 输入 复制
  12.  
  13. 输出 复制
  14.  
  15. 说明/提示
  16. %数据a,blong long范围内
  17.  
  18. %数据0 < a,b <10^10086 (此处^为乘方)

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

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

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

所以高精度就诞生了!

高精度大概流程:

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

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

3.进行运算

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

5.去掉前导零

那么代码如下:

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #define N 10087
  5. using namespace std;
  6. char a[N];
  7. char b[N];
  8. char ta[N];
  9. char ans[N];
  10. int aa[N],bb[N],ansa[N];
  11. int tb;
  12. bool flag;
  13. int main()
  14. {
  15. scanf("%s",&a);
  16. scanf("%s",&b);
  17. int la=strlen(a),lb=strlen(b);
  18. if(lb>la) {
  19. flag=true;
  20. strcpy(ta,a);strcpy(a,b);strcpy(b,ta);
  21. tb=la;la=lb;lb=tb;
  22. }
  23. else{
  24. if(la==lb){
  25. for(int i=;i<la;i++){
  26. if(a[i]==b[i]){
  27. continue;
  28. }
  29. if(a[i]>b[i]){
  30. break;
  31. }
  32. flag=true;
  33. strcpy(ta,a);strcpy(a,b);strcpy(b,ta);
  34. tb=la;la=lb;lb=tb;
  35. break;
  36. }
  37. }
  38. }
  39. for(int i=;i<=la;i++){
  40. aa[i]=a[la-i]-'';
  41. }
  42. for(int i=;i<=lb;i++){
  43. bb[i]=b[lb-i]-'';
  44. }
  45. int mm=max(la,lb);
  46. for(int i=;i<=mm;i++){
  47. ansa[i]+=(aa[i]-bb[i]);
  48. if(ansa[i]<){
  49. ansa[i]+=;
  50. ansa[i+]--;
  51. }
  52. }
  53. for(int i=mm;i>=;i--){
  54. if(ansa[i]){
  55. break;
  56. }
  57. mm--;
  58. }
  59. if(flag) printf("-");
  60. for(int i=mm;i>=;i--){
  61. printf("%d",ansa[i]);
  62. }
  63. return ;
  64. }

洛谷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. input file弹出框选择文件后缀限制

    在页面选择文件时的弹出框默认显示的是所有类型的文件,有时候文件太多不好选择,我们就要过滤掉不想展示的文件,这是需要用到input的accept属性,只有在type="file"才有 ...

  2. Linux上查看当前系统各内存分区信息

    命令 ulimit -a -a 查看所有信息,同理,也可以例如 ulimit -s 只查看栈占内存信息

  3. Java:不得不知的Object类

    目录 一.equals 1.equals与==有啥区别? 2.equals方法的规范 3.instanceof 和getClass() 4.其他总结 二.hashCode 1.hashCode的规范 ...

  4. arcgis字段计算器

    arcgis字段计算器 一.VB脚本 1.取某字段前几位或者后几位 ) ) 2.合并字段,中间加符号 Dim a if [ZDDM2] ="" Then a= [ZDDM1] el ...

  5. springboot10(docker)

    一 Docker 1 what's the Docker? ​ Docker是一个开源的应用容器引擎,轻量级容器技术. ​ Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器 ...

  6. C++之Boost准标准库配置

    下载安装 进入官网下载地址:https://www.boost.org/users/download/ 本教程直接下载官方已编译库,不涉及源代码手动编译 点击官方编号好的链接,然后进入一个下载地址:h ...

  7. Codeforces Round #599 (Div. 2) A. Maximum Square

    Ujan decided to make a new wooden roof for the house. He has nn rectangular planks numbered from 11  ...

  8. 基于maven+java+TestNG+httpclient+poi+jsonpath+ExtentReport的接口自动化测试框架

    接口自动化框架 项目说明 本框架是一套基于maven+java+TestNG+httpclient+poi+jsonpath+ExtentReport而设计的数据驱动接口自动化测试框架,TestNG ...

  9. jmeter巧用自增长型变量

    实现目的 在进行性能测试时,某些请求中的参数值并不允许被重复使用,比如账号的创建.开通授权等服务,这时就需要在jmeter中构造一些自增长型的变量,供后续请求使用,以解决参数值重复的问题. 脚本实现 ...

  10. spark-shell中往mysql数据库写数据报错

    今天在看spark方面的知识的时候,在spark-shell中往mysql写数据时报错,错误信息如下: ERROR Executor: Exception in task 0.0 in stage 4 ...