洛谷P2142 高精度减法 题解
2024-09-05 02:22:17
想找原题请点击这里:传送门
原题:
题目描述
高精度减法 输入格式
两个整数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 ;
}
最新文章
- PAT 1044. 火星数字(20)
- Breeze库API总结(Spark线性代数库)(转载)
- PHP无法编译undefined reference to `libiconv_open
- github的注册过程
- 邮件群发工具(C#版)
- EF实体框架之CodeFirst四
- node基础 --全局
- (转)Linux性能调优之虚拟内存篇
- 性能指标--并发用户数(Concurrent Users)
- Archlinux 安装配置指导 2015-05-24
- http进阶
- 二值化神经网络(BNN)基础学习(一)
- React(六)Props属性
- 转 MYSQL SELECT ... FOR UPDATE and SELECT ... LOCK IN SHARE MODE Locking Reads
- java代码生成Excel文件3000条自定义属性的的域账户名
- NGUI外包开发总结一下今天的收获
- SpringBoot远程接口调用-RestTemplate使用
- cdqz2017-test11-奇诺之旅(拟阵)
- minicom的安装及配置
- JS性能细节学习初步总结
热门文章
- Visual Studio 2017:SQLite/SQL Server Compact ToolBox使用
- 【网易官方】极客战记(codecombat)攻略-地牢-高举之剑
- Bugku-CTF之细心 (想办法变成admin)
- python+pygame制作一个可自定义的动态时钟和详解
- 测试工具 - IDEA - IDEA Code Coverage
- python3中的正则表达式
- laravel搭建博客实战的教程实例
- Python - 字符串为多行时,转换为列表
- Java 倒入文章显示前n个单词频率
- 吴裕雄 python 神经网络——TensorFlow实现回归模型训练预测MNIST手写数据集