高精度减法(c++)
高精度减法
每当要进行精度较高的运算时,就要用到高精度。
下图是各个类型的数值范围:


如果想不起各个类型占多少字节,可以采用下面的方法:
printf("%d %d",sizeof(int),sizeof(long long));
格式为:
sizeof(数据类型)
可以把值赋值给一个变量,也可以直接输出;
好了,回到正点。我们先看例题:
大整数减法
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 9471 通过数: 5448
【题目描述】
求两个大的正整数相减的差。
【输入】
共2行,第1行是被减数a,第2行是减数b(a>=b)。每个大整数不超过200位,不会有多余的前导零。
【输出】
一行,即所求的差。
【输入样例】
9999999999999999999999999999999999999
9999999999999
【输出样例】
9999999999999999999999990000000000000
读完题目,是不是发现这就是赤裸裸的模板题目;大概的思路为3步:
一,读入a和b;
二,进行计算,如果a[i]<b[i],就借位;
三,输出;
先是读数:
int i;
int a[205],b[205],lena,lenb;
char t[205],t1[205];
scanf("%s %s",t,t1);
lena=strlen(t);
lenb=strlen(t1);
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(i=0;i<lena;i++)a[lena-i]=t[i]-48;
for(i=0;i<lenb;i++)b[lenb-i]=t1[i]-48;
再进行计算:
i=1;x=0;
while((i<=lena) or (i<=lenb)){
a[i]=a[i]-b[i]-x;
if(a[i]<0){
a[i]+=10;
x=1;
}
else x=0;
i++;
}
最后再输出:
bool f=false;
for(i=N-1;i>=1;--i){
if(a[i]!=0){
printf("%d",a[i]);
if(!f)f=true;
}
else if(f)printf("%d",a[i]);
}
if(!f)printf("0");
完整AC程序:
#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
const int N=205;
int main(){
int i;
int a[N],b[N],lena,lenb,x;
char t[N],t1[N];
scanf("%s %s",t,t1);
lena=strlen(t);
lenb=strlen(t1);
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(i=0;i<lena;i++)a[lena-i]=t[i]-48;
for(i=0;i<lenb;i++)b[lenb-i]=t1[i]-48;
i=1;x=0;
while((i<=lena) or (i<=lenb)){
a[i]=a[i]-b[i]-x;
if(a[i]<0){
a[i]+=10;
x=1;
}
else x=0;
i++;
}
bool f=false;
for(i=N-1;i>=1;--i){
if(a[i]!=0){
printf("%d",a[i]);
if(!f)f=true;
}
else if(f)printf("%d",a[i]);
}
if(!f)printf("0");
return 0;
}
记得点赞哦
高精度减法(c++)的更多相关文章
- HDU 5920 Ugly Problem 高精度减法大模拟 ---2016CCPC长春区域现场赛
题目链接 题意:给定一个很大的数,把他们分为数个回文数的和,分的个数不超过50个,输出个数并输出每个数,special judge. 题解:现场赛的时候很快想出来了思路,把这个数从中间分为两部分,当位 ...
- 【洛谷P2142 高精度减法】
题目描述 高精度减法 输入输出格式 输入格式: 两个整数a,b(第二个可能比第一个大) 输出格式: 结果(是负数要输出负号) 输入输出样例 输入样例#1: 复制 2 1 输出样例#1: 复制 1 说明 ...
- 【洛谷p2142】高精度减法
高精度减法第一遍没有过 高精度减法[传送门] 洛谷算法标签: 总之技术都在高精上了吧. 附代码: #include<iostream> #include<cstdio> #in ...
- P2412高精度减法
传送门 因为忘了带书回家,所以因为这道题我卡了半小时所以写篇博客“纪念”下 高精度减法中,如果被减数比减数小,就要用减数减去被减数.接下来的判断就是本题的核心.直接用strcmp是不行的,例如100与 ...
- 高精度减法--C++
高精度减法--C++ 仿照竖式减法,先对其,再对应位相减. 算法处理时,先比较大小,用大的减小的,对应位再比较大小,用于作为借位符. #include <iostream> #includ ...
- P2142 高精度减法
题目描述 高精度减法 输入输出格式 输入格式: 两个整数a,b(第二个可能比第一个大) 输出格式: 结果(是负数要输出负号) 输入输出样例 输入样例#1: 2 1 输出样例#1: 1 说明 20%数据 ...
- 洛谷 P2142 高精度减法(模板)
题目描述 高精度减法 输入输出格式 输入格式: 两个整数a,b(第二个可能比第一个大) 输出格式: 结果(是负数要输出负号) 输入输出样例 输入样例#1: 2 1 输出样例#1: 1 说明 20%数据 ...
- 洛谷P2142 高精度减法 题解
想找原题请点击这里:传送门 原题: 题目描述 高精度减法 输入格式 两个整数a,b(第二个可能比第一个大) 输出格式 结果(是负数要输出负号) 输入输出样例 输入 复制 输出 复制 说明/提示 %数据 ...
- Java实现 蓝桥杯 算法提高 高精度减法(JDK方法)
试题 算法提高 高精度减法 问题描述 高精度减法 输入格式 两行,表示两个非负整数a.b,且有a > b. 输出格式 一行,表示a与b的差 样例输入 1234567890987654321 99 ...
- P2142_高精度减法(JAVA语言)
思路:BigInteger double kill! //四行搞定 题目描述 高精度减法 输入输出格式 输入格式: 两个整数a,b(第二个可能比第一个大) 输出格式: 结果(是负数要输出负号) 输入输 ...
随机推荐
- HTTP cache in depth
HTTP cache in depth HTTP 缓存 https://developers.google.com/web/fundamentals/performance/optimizing-co ...
- flutter & plugins
flutter & plugins https://pub.dev/ https://juejin.im/post/5c206b4ff265da61327f52f4
- [C#] 尝鲜.net6.0的C#代码热重载
看到.NET 6 Preview 1 发布,里面"除了 XAML 热重载之外,还将支持 C# 代码的热重载"一句,觉得有必要试试看,因为XAML热重载功能用起来确实很爽. 首先要下 ...
- django学习-8.django模板继承(block和extends)
1.前言 django模板继承的作用:模板可以用继承的方式来实现复用,减少冗余内容. 一般来说,一个网站里一般存在多个网页的头部和尾部内容都是一致的,我们就可以通过模板继承来实现复用. 父模板用于放置 ...
- Recycle 只显示一行BUG
学习Recycle 两天了,照着网上的Adapter写了2个Demo,结果测试的时候发现,第一个Demo 显示.点击都正常,第二个Demo的Adapter合第一个一模一样,仅仅是类名不同,结果显示的时 ...
- 《Activity显示界面历险记》—说说View的那些理不清的关系
前言 在Activity显示View的过程中,有一些重要的角色总让人理不清,比如PhoneWindow.DecorView.ViewRootImpl. 也常常有面试题会问到,他们四者之间的关系?创建的 ...
- 关于电脑硬盘的二三事(SATA接口)
@ 目录 前言 接口分类 SATA3接口 机械硬盘 机械硬盘的特点和主要参数 西部数据机械盘分类 绿·蓝·黑盘 红盘 紫盘 金盘 希捷机械盘分类 酷狼 酷鱼 酷鹰 银河 SATA3接口的固态硬盘 固态 ...
- sentry SSRF
目录 Sentry介绍 exp测试步骤 自己构造blind发包 修复方式 参考 Sentry介绍 Sentry 是一个实时的事件日志和聚合平台,基于 Django 构建.一般在url上.或者logo上 ...
- 如何在netcore下,愉快的使用IServiceProvider
之前一直做dotnet framework开发,依赖注入使用Autofac,Autofac的一般用法是服务启动时,将用到的接口.实现类名注入进去, 然后在服务其他地方如果使用该类时,直接在Contai ...
- 剑指 Offer 50. 第一个只出现一次的字符 + 哈希表 + 有序哈希表
剑指 Offer 50. 第一个只出现一次的字符 Offer_50 题目详情 方法一:使用无序哈希表 package com.walegarrett.offer; /** * @Author Wale ...