洛谷P2142 高精度减法 题解
想找原题请点击这里:传送门
原题:
题目描述
高精度减法 输入格式
两个整数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 高精度减法 题解的更多相关文章
- 【洛谷P2142 高精度减法】
题目描述 高精度减法 输入输出格式 输入格式: 两个整数a,b(第二个可能比第一个大) 输出格式: 结果(是负数要输出负号) 输入输出样例 输入样例#1: 复制 2 1 输出样例#1: 复制 1 说明 ...
- 洛谷 P2142 高精度减法(模板)
题目描述 高精度减法 输入输出格式 输入格式: 两个整数a,b(第二个可能比第一个大) 输出格式: 结果(是负数要输出负号) 输入输出样例 输入样例#1: 2 1 输出样例#1: 1 说明 20%数据 ...
- 洛谷P2832 行路难 分析+题解代码【玄学最短路】
洛谷P2832 行路难 分析+题解代码[玄学最短路] 题目背景: 小X来到了山区,领略山林之乐.在他乐以忘忧之时,他突然发现,开学迫在眉睫 题目描述: 山区有n座山.山之间有m条羊肠小道,每条连接两座 ...
- 【洛谷P3960】列队题解
[洛谷P3960]列队题解 题目链接 题意: Sylvia 是一个热爱学习的女孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Sylvia 所在的方阵中有 n×m ...
- 洛谷P2312 解方程题解
洛谷P2312 解方程题解 题目描述 已知多项式方程: \[a_0+a_1x+a_2x^2+\cdots+a_nx^n=0\] 求这个方程在 \([1,m]\) 内的整数解(\(n\) 和 \(m\) ...
- 洛谷P1577 切绳子题解
洛谷P1577 切绳子题解 题目描述 有N条绳子,它们的长度分别为Li.如果从它们中切割出K条长度相同的 绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位(直接舍掉2为后的小数). 输入输出格 ...
- 洛谷P2507 [SCOI2008]配对 题解(dp+贪心)
洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [S ...
- 洛谷 P1220 关路灯 题解
Description 有 $n$ 盏路灯,每盏路灯有坐标(单位 $m$)和功率(单位 $J$).从第 $c$ 盏路灯开始,可以向左或向右关闭路灯.速度是 $1m/s$.求所有路灯的最少耗电.输入保证 ...
- 【洛谷p2142】高精度减法
高精度减法第一遍没有过 高精度减法[传送门] 洛谷算法标签: 总之技术都在高精上了吧. 附代码: #include<iostream> #include<cstdio> #in ...
随机推荐
- 免费天气API,天气JSON API,不限次数获取十五天的天气预报
紧急情况说明: 禁用IP列表: 39.104.69.*(原因39.104.69.6 在2018年10月的 17~20日 排行为top 1,每天几十万次.) 47.98.211.* (原因47.98.2 ...
- Wx-公众号-关闭内置浏览器页面,返回公众号橱窗
方法一: pushHistory(); function pushHistory() { var state = { title: "title", url: "#&qu ...
- 【网易官方】极客战记(codecombat)攻略-地牢-攻破突袭
关卡连接: https://codecombat.163.com/play/level/hack-and-dash 通过加速药来逃离地牢精灵 简介: 空气中弥漫着危险的气息.你应该从地牢里逃出来. 但 ...
- 关于DLL搜索路径的顺序问题
DLL的动态链接有两种方法.一种是加载时动态链接(Load_time dynamic linking).Windows搜索要装入的DLL时,按以下顺序:应用程序所在目录→当前目录→Windows SY ...
- opencv:形态学操作-开闭操作
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace st ...
- 快捷键(二):VSCode
1,打开命令板:F1或Ctrl+Chift+P 2,新建文件:Ctrl+N 3,文件间切换:Ctrl+Tab 4,新开界面:Ctrl+Shift+N 5,关闭当前窗口:Ctrl+W 6,关闭界面:Ct ...
- 基于jenkins自动打包并部署docker环境及PHP环境
- 解决tensorflow Saver.restore()无效的问题
解决tensorflow 的 Saver.restore()无法从本地读取变量的问题 最近做tensorflow 手写数字识别的时候遇到了一个问题,Saver的restore()方法无法从本地恢复变量 ...
- Windows 搭建WAMP+Mantis
下载WAMP http://www.wampserver.com/ 安装直接下一步就行 安装完启动后,显示下面的logo 在浏览器输入 127.0.0.1/phpmyadmin 设置数据库(默认 ...
- Java连载81-枚举类型,生成五个不重复的随机数,集合简介
一.枚举类型 1.枚举类型的格式就是enum+枚举类型的名称,可见下面的例子. package com.bjpowernode.java_learning; public class D81_1_ ...