高精度减法

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


如果想不起各个类型占多少字节,可以采用下面的方法:

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++)的更多相关文章

  1. HDU 5920 Ugly Problem 高精度减法大模拟 ---2016CCPC长春区域现场赛

    题目链接 题意:给定一个很大的数,把他们分为数个回文数的和,分的个数不超过50个,输出个数并输出每个数,special judge. 题解:现场赛的时候很快想出来了思路,把这个数从中间分为两部分,当位 ...

  2. 【洛谷P2142 高精度减法】

    题目描述 高精度减法 输入输出格式 输入格式: 两个整数a,b(第二个可能比第一个大) 输出格式: 结果(是负数要输出负号) 输入输出样例 输入样例#1: 复制 2 1 输出样例#1: 复制 1 说明 ...

  3. 【洛谷p2142】高精度减法

    高精度减法第一遍没有过 高精度减法[传送门] 洛谷算法标签: 总之技术都在高精上了吧. 附代码: #include<iostream> #include<cstdio> #in ...

  4. P2412高精度减法

    传送门 因为忘了带书回家,所以因为这道题我卡了半小时所以写篇博客“纪念”下 高精度减法中,如果被减数比减数小,就要用减数减去被减数.接下来的判断就是本题的核心.直接用strcmp是不行的,例如100与 ...

  5. 高精度减法--C++

    高精度减法--C++ 仿照竖式减法,先对其,再对应位相减. 算法处理时,先比较大小,用大的减小的,对应位再比较大小,用于作为借位符. #include <iostream> #includ ...

  6. P2142 高精度减法

    题目描述 高精度减法 输入输出格式 输入格式: 两个整数a,b(第二个可能比第一个大) 输出格式: 结果(是负数要输出负号) 输入输出样例 输入样例#1: 2 1 输出样例#1: 1 说明 20%数据 ...

  7. 洛谷 P2142 高精度减法(模板)

    题目描述 高精度减法 输入输出格式 输入格式: 两个整数a,b(第二个可能比第一个大) 输出格式: 结果(是负数要输出负号) 输入输出样例 输入样例#1: 2 1 输出样例#1: 1 说明 20%数据 ...

  8. 洛谷P2142 高精度减法 题解

    想找原题请点击这里:传送门 原题: 题目描述 高精度减法 输入格式 两个整数a,b(第二个可能比第一个大) 输出格式 结果(是负数要输出负号) 输入输出样例 输入 复制 输出 复制 说明/提示 %数据 ...

  9. Java实现 蓝桥杯 算法提高 高精度减法(JDK方法)

    试题 算法提高 高精度减法 问题描述 高精度减法 输入格式 两行,表示两个非负整数a.b,且有a > b. 输出格式 一行,表示a与b的差 样例输入 1234567890987654321 99 ...

  10. P2142_高精度减法(JAVA语言)

    思路:BigInteger double kill! //四行搞定 题目描述 高精度减法 输入输出格式 输入格式: 两个整数a,b(第二个可能比第一个大) 输出格式: 结果(是负数要输出负号) 输入输 ...

随机推荐

  1. JavaScript Weekly

    JavaScript Weekly 技术订阅 https://javascriptweekly.com/issues/489 WebGL https://xem.github.io/articles/ ...

  2. SPC算力币异军突起,或将跑赢币圈全场

    比特币在出现反弹以后,并没有向上突破,而是回调,目前已经跌破了35000美金.目前,整个市场都在关注着比特币的动向,毕竟,比特币的走势,关注着资本的流向.不过,也有一部分巨鲸们将目光对准了币圈的其它数 ...

  3. dategrip的使用技巧

    原文链接:https://blog.csdn.net/weixin_44421461/article/details/109541903 数据表复制,可以直接用sql语句 1.复制表结构及数据到新表 ...

  4. Redis缓存中的常见问题

    缓存穿透:是指查询一个Redis和数据库中都不存在的数据. 问题:查询一个Redis和数据库中都不存在的数据,大量请求去访问数据库,导致数据库宕机. 解决办法: 1.根据id查询,如果id是自增的,将 ...

  5. Django批量插入数据和分页器

    目录 一.ajax结合sweetalert实现删除按钮动态效果 二.bulk_create批量插入数据 1. 一条一条插入 2. 批量插入 三.自定义分页器 一.ajax结合sweetalert实现删 ...

  6. Rocket broker启动失败?

    安装 Rocket 时, 执行 nohup sh bin/mqbroker -n localhost:9876 & 启动 broker 失败 更改其内存试试 在下面目录下 : cd distr ...

  7. spring-Cloud初步依赖

    <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot ...

  8. 运营好帮手| 华为DTM助电商类应用实现营销数据快速跟踪

    对于电商来说,销售额就是生命线,业务运营人员需要实时关注订单量,交易额,支付转化率等,并从各种维度对比分析,无论增幅或降幅,都需要马上找到原因,落地运营手段进行干预.快速准确的得到各种营销数据就显得格 ...

  9. HDOJ-1560(迭代加深搜索问题)

    DNA sequence HDOJ-1560 *本题是迭代加深搜索问题,主要是要理解题目,题目中一定是有解的,所以为了找最小的解,可以从小的搜索深度开始逐渐增加. *这里有个技巧就是,如果本次指定开始 ...

  10. 如何在 C# 中使用 const,readonly,static

    平时在开发时经常会用到 const,readonly,static 关键字,可以肯定这些关键词是完全不同的概念,但有时候他们在用法上很相似以至于在场景中不知道选择哪一个,这篇文章我们就来讨论 C# 中 ...