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

原题:

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

最新文章

  1. PAT 1044. 火星数字(20)
  2. Breeze库API总结(Spark线性代数库)(转载)
  3. PHP无法编译undefined reference to `libiconv_open
  4. github的注册过程
  5. 邮件群发工具(C#版)
  6. EF实体框架之CodeFirst四
  7. node基础 --全局
  8. (转)Linux性能调优之虚拟内存篇
  9. 性能指标--并发用户数(Concurrent Users)
  10. Archlinux 安装配置指导 2015-05-24
  11. http进阶
  12. 二值化神经网络(BNN)基础学习(一)
  13. React(六)Props属性
  14. 转 MYSQL SELECT ... FOR UPDATE and SELECT ... LOCK IN SHARE MODE Locking Reads
  15. java代码生成Excel文件3000条自定义属性的的域账户名
  16. NGUI外包开发总结一下今天的收获
  17. SpringBoot远程接口调用-RestTemplate使用
  18. cdqz2017-test11-奇诺之旅(拟阵)
  19. minicom的安装及配置
  20. JS性能细节学习初步总结

热门文章

  1. Visual Studio 2017:SQLite/SQL Server Compact ToolBox使用
  2. 【网易官方】极客战记(codecombat)攻略-地牢-高举之剑
  3. Bugku-CTF之细心 (想办法变成admin)
  4. python+pygame制作一个可自定义的动态时钟和详解
  5. 测试工具 - IDEA - IDEA Code Coverage
  6. python3中的正则表达式
  7. laravel搭建博客实战的教程实例
  8. Python - 字符串为多行时,转换为列表
  9. Java 倒入文章显示前n个单词频率
  10. 吴裕雄 python 神经网络——TensorFlow实现回归模型训练预测MNIST手写数据集