OJ_浮点数加法(高精度运算)

题干

在这里插入图片描述

C++实现

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<map>
#include<string>
using namespace std;string GetInteger(string a) {return a.substr(0, a.find('.'));
}string GetFraction(string a) {return a.substr(a.find('.') +1 ,a.size() - a.find('.'));
}//利用引用参数,返回多个信息
void FractionPlus(string& res, int& carry, string fa, string fb) {int size = max(fa.size(), fb.size());//将两个数的小数部分对齐while (fa.size() < size) {fa.push_back('0');}while (fb.size() < size) {fb.push_back('0');}res.resize(size);//给res申请内存carry = 0;//从右往左加for (int i = size - 1; i >= 0; i--){// '0' = '0'// '3' = '0' + 3if (fa[i] + fb[i] + carry - '0' > '9') {res[i] = fa[i] + fb[i] + carry - '0' - 10;carry = 1;}else {res[i] = fa[i] + fb[i] + carry - '0';carry = 0;}}return;
}void IntegerPlus(string& res, int carry, string ia, string ib) {res.clear();//清空字符串for (int i = ia.size() - 1, j = ib.size() - 1; i >= 0 || j >= 0 || carry == 1; --i, --j) {if (i >= 0 && j >= 0) {if (ia[i] + ib[j] + carry - '0' > '9') {res.insert(res.begin(), ia[i] + ib[j] + carry - '0' - 10);carry = 1;}else {res.insert(res.begin(), ia[i] + ib[j] + carry - '0');carry = 0;}}else if (i >= 0 && j < 0) {if (ia[i] + carry > '9') {res.insert(res.begin(), ia[i] + carry - 10);carry = 1;}else {res.insert(res.begin(), ia[i] + carry);carry = 0;}}else if(i < 0 && j >= 0){if (ib[j] + carry > '9') {res.insert(res.begin(), ib[j] + carry - 10);carry = 1;}else {res.insert(res.begin(), ib[j] + carry);carry = 0;}}else {res.insert(res.begin(), '1');carry = 0;}}return;
}int main() {/*string a = "12345.6789";string b = "333.33333";*/char arra[1024];char arrb[1024];while (scanf("%s%s", arra, arrb) != EOF) {string a = arra;string b = arrb;string ia = GetInteger(a);string ib = GetInteger(b);string fa = GetFraction(a);string fb = GetFraction(b);string res;int carry;FractionPlus(res, carry, fa, fb);string ires;IntegerPlus(ires, carry, ia, ib);printf("%s.%s\n", ires.c_str(), res.c_str());}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/456507.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023_中国零售业人工智能行业应用 发展图谱

01 零售人工智能行业应用发展背景 02 零售人工智能行业应用发展图谱及行业应用案例 案例&#xff1a;京东云、蓝色光标、京东言犀智能服务、腾讯企点、 案例&#xff1a;淘天集团、极睿科技、百度电商数字人直播 案例&#xff1a;中国联通、云拿科技AI智能商店&#xff1b; 0…

C#向数组指定索引位置插入新的元素值:自定义插入方法 vs List<T>.Add(T) 方法

目录 一、使用的方法 1.自定义插入方法 2.使用List.Add(T) 方法 二、实例 1.示例1&#xff1a;List.Add(T) 方法 2.示例&#xff1a;自定义插入方法 一、使用的方法 1.自定义插入方法 首先需要定义一个一维数组&#xff0c;然后修改数组的长度(这里使用Length属性获取…

全面理解jvm

jvm是什么&#xff1f; java虚拟机 为什么要学jvm&#xff1f; 解决性能调优&#xff0c;优化内存空间&#xff0c;防止服务崩掉的问题。同时是java的工作环境, 一些基于java开发的语言Scale &#xff0c; Jpython都可以运行在java虚拟机上。 jvm的工作原理&#xff1a; 类加…

第9章 安全漏洞、威胁和对策(9.11-9.16)

9.11 专用设备 专用设备王国疆域辽阔&#xff0c;而且仍在不断扩张。 专用设备是指为某一特定目的而设计&#xff0c;供某一特定类型机构使用或执行某一特定功能的任何设备。 它们可被看作DCS、物联网、智能设备、端点设备或边缘计算系统的一个类型。 医疗设备、智能汽车、…

类图(Class diagram)

类图主要是用来展现软件系统中的类、接口以及它们之间的静态结构 。 一、元素 1、类 ​ 从上到下分为三部分&#xff0c;分别是类名、属性和操作。 类名是必须有的。​类如果有属性&#xff0c;则每一个属性必须有一个名字&#xff0c;另外还可以有其他的描述信息&#xff…

JVM-JVM内存结构(二)

堆 堆(Heap) 通过new关键字&#xff0c;创建的对象都会使用堆内存特点&#xff1a; 他是线程共享的&#xff0c;堆中的对象需要考虑线程安全的问题有垃圾回收机制 堆内存溢出(OutOfMemoryError) 代码演示 List<String> list new ArrayList<>(); try{String …

【学习笔记】树上差分总结(点差分/边差分)

一.树上差分的基本概念 1.树上差分的定义 树上差分&#xff0c;顾名思义&#xff0c;意思就是在树上做差分。 至于什么是差分呢&#xff1f;如果不会的同学&#xff0c;可以先看看我的这篇博客:一维,二维差分の详解&#xff08;简单易懂&#xff09;_一维差分-CSDN博客 2.树…

【Java EE】----Bean的作用域和生命周期

1.Bean的作用域 定义&#xff1a;Bean 的作⽤域是指 Bean 在 Spring 整个框架中的某种⾏为模式&#xff0c;⽐如 singleton 单例作⽤域&#xff0c;就 表示 Bean 在整个 Spring 中只有⼀份 &#xff08;产生的原因&#xff0c;Bean 默认情况下是单例状态&#xff08;singleton&…

c#cad 创建-多线段(三)

运行环境 vs2022 c# cad2016 调试成功 一、程序说明 AutoCAD中创建多段线的。具体解释如下&#xff1a; 获取当前文档和数据库&#xff0c;并创建一个编辑器&#xff08;用于与用户交互&#xff09;。使用事务处理的方式&#xff0c;开始对数据库的操作。打开模型空间&…

mysql事务锁

Lock - 事务锁 与 latch 的区别 lock对象是事务&#xff0c;用来锁定的是数据库中的对象&#xff0c;如表、行、页。并且一般lock的对象仅在事务commit或rollback后进行释放&#xff08;不同事务隔离级别释放的时间可能不同&#xff09;。此外&#xff0c;lock&#xff0c;正…

Damn Small Linux 停更16年后,2024 回归更新

Damn Small Linux(DSL) 发行版释出了最新的 2024 版本&#xff0c;并重新定义了什么叫“Damn Small”。 DSL 诞生于 2005 年&#xff0c;原本是尝试提供一个 50MB 大小的 LiveCD&#xff0c;2008 年开发停滞。 2024 年原作者 John Andrews 宣布 DSL 复活&#xff0c;在几乎所…

信号系统之线性系统详解

1 线性系统 信号描述了一个参数如何随另一个参数变化。例如&#xff0c;电子电路中的电压随时间变化&#xff0c;或图像中随距离变化的亮度。系统是响应输入信号而产生输出信号的任何过程。如图中的框图所示。 有几个规则用于命名信号&#xff1a; 连续信号使用圆括号&#x…