【Codevs 3115】高精度练习之减法
http://codevs.cn/problem/3115/
板子题~
// <H.cpp> - Sun Oct 9 12:58:23 2016 // This file is made by YJinpeng,created by XuYike's black technology automatically. // Copyright (C) 2016 ChangJun High School, Inc. // I don't know what this program is. #include <iostream> #include <vector> #include <algorithm> #include <cstring> #include <cstdio> #include <cstdlib> #include <cmath> #define MOD 1000000007 #define INF 1e9 #define IN inline #define RG register using namespace std; typedef long long LL; typedef long double LB; const int MAXN=100010; const int MAXM=100010; inline int max(int &x,int &y) {return x>y?x:y;} inline int min(int &x,int &y) {return x<y?x:y;} inline LL gi() {register LL w=0,q=0;register char ch=getchar();while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();if(ch=='-')q=1,ch=getchar();while(ch>='0'&&ch<='9')w=w*10+ch-'0',ch=getchar();return q?-w:w; } const int _bod_=10; struct BN{static const int N=510;int a[N];char s[N];int& operator [](int n){return a[n];}bool operator <(BN b) const{if(a[0]<b[0])return 1;if(a[0]>b[0])return 0;for(int i=a[0];i>=1;i--){if(a[i]>b[i])return 0;if(a[i]<b[i])return 1;}return 0;}BN operator -(BN b) const{BN ans=*this;int q=1;if(ans<b)swap(ans,b),q=-1;for(int i=1;i<=ans[0];i++){ans[i]=ans[i]-b[i];if(ans[i]<0){ans[i+1]--;ans[i]+=_bod_;}}while(ans[0]&&!ans[ans[0]])ans[0]--;for(int i=1;i<=ans[0];i++)ans[i]*=q;return ans;}void read(){scanf("%s",s);a[0]=strlen(s);for(int i=1;i<=a[0];i++)a[i]=s[a[0]-i]-'0';}void pri(){printf("%d",a[a[0]]);for(int i=a[0]-1;i>=1;i--)printf("%.1d",a[i]);} }a,b; int main() {freopen("3115.in","r",stdin);freopen("3115.out","w",stdout);a.read(),b.read();if(a<b)printf("-"),(b-a).pri();else (a-b).pri();return 0; }
转载于:https://www.cnblogs.com/YJinpeng/p/5971030.html
【Codevs 3115】高精度练习之减法相关推荐
- codevs 3054 高精度练习-文件操作
时间限制: 1 s 空间限制: 64000 KB 题目等级 : 钻石 Diamond 题目描述 Description 输入一组数据,将每个数据加1后输出 输入描述 Input Descripti ...
- codeVS 3116 高精度练习之加法
时间限制:1s 空间限制:128000KB题目等级:黄金 Gold 题目描述 给出两个正整数A和B,计算A+B的值.保证A和B的位数不超过500位. 输入描述 读入两个用空格隔开的正整数 输出描述 输 ...
- [CodeVS 1166] 高精度加法
先弄个支持加减和大小比较的manual BigInteger #include<bits/stdc++.h> using namespace std;class BigInteger {p ...
- 【多题合集】高精度加减乘除
高端:高精度算法,属于处理大数字的数学计算方法.在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几千亿几百亿的大数字.一般这类数字我们统称为高精度数,高精度算法是用计算机对于超大数据 ...
- 高精度算法——高精度减法
介绍: 高精度减法也同加法一样,也是用于位数太大的运算,给你一个十几位的数你可能会做直接开个long long 的数据类型就解决了,但是给你一个100位的呢,1000位的呢,开long long 也不 ...
- CodeVs天梯黄金Gold题解
title: CodeVs天梯之Gold date: 2017-12-28 tags: 天梯 CodesVs categories: OI CodeVs天梯之Gold 2018.01.04 By gw ...
- 高精度加减法的应用——试解大数之和
一.前言 我是夏日弥,很高兴看到您来读我的博客, 这一次小夏将为您讲解一道经典的算法竞赛入门题,使用的方法涉及高精度加法和减法,vector动态数组,这是一种比较容易想得到,却不好代码实现的方法. 于 ...
- 【from zero to zero】noip2017
from zero to zero 洛谷首页的倒计时不知道什么时候就变成了六字开头. 到底还是太弱了. 生病又拖了很多的时间. 听了很多的算法,自己写起来却非常困难. 也许要在累倒前做一些事情呢. 从 ...
- 从2D到3D的目标检测综述
点云PCL免费知识星球,点云论文速读. 文章:An Overview Of 3D Object Detection 作者:Yilin Wang Jiayi Ye 翻译:分享者 本文仅做学术分享,如有 ...
- C++数据结构算法(一)
数据结构研究什么? 数据结构研究的是在抽象层面上一组有特定关系的数据的存储与处理. 学习数据结构就是研究: 问题定义 数据之间的逻辑关系 关系对应的操作 问题解决 存储实现:如何存储某种逻辑关系 运算 ...
最新文章
- Node.js express 之mongoose 从异步回调函数返回值,类似于同步
- 关于计算机读研的小建议
- 日常工作问题解决:配置NTP服务器以及一些常见错误解决
- datetime模块
- 用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识
- js中字符串和数组的使用
- 浅析MySQL中exists,in ,=的使用
- 关于linux下内存使用的一些疑惑
- ※C++随笔※=☆C++基础☆=※№→C++中 #include与#include
- vscode调试时几个常用参数的含义和设置总结
- 2019年,免费的检测僵尸粉软件《雪球微信小助手》,无打扰检测清理微信僵尸粉
- 使用 PotPlayer 搭配 SVP 4 播放60帧电影
- 1+X 网络系统 建设与运维(中级)实验
- matlab 固定收益证券,matlab计算固定收益证券学习(二)
- ddl和dml(DDL和DML包含哪些动词)
- Android sdcard读写文件(二)
- 访问学者办理签证的问题整理!
- 中心极限定理与大数定理理解
- cat实时监控-入门demo
- Windows更新网站被黑还是被ARP病毒捉弄了?Virus.Win32.AutoRun.am