R 格式(蓝桥杯)

文章目录

  • R 格式
    • 【问题描述】
    • 高精度乘法+高精度加法

R 格式

【问题描述】

小蓝最近在研究一种浮点数的表示方法:R 格式。对于一个大于 0 的浮点数 d,可以用 R 格式的整数来表示。给定一个转换参数 n,将浮点数转换为 R格式整数的做法是:

  1. 将浮点数乘以 2n;
  2. 四舍五入到最接近的整数。

【输入格式】
一行输入一个整数 n 和一个浮点数 d,分别表示转换参数,和待转换的浮点数。
【输出格式】
输出一行表示答案:d 用 R 格式表示出来的值。
【样例输入】

2 3.14

【样例输出】

13

【样例说明】
3.14 × 22 = 12.56,四舍五入后为 13。

【评测用例规模与约定】
对于 50% 的评测用例:1 ≤ n ≤ 10,1 ≤ 将 d 视为字符串时的长度 ≤ 15。
对于 100% 的评测用例:1 ≤ n ≤ 1000,1 ≤ 将 d 视为字符串时的长度≤ 1024;保证 d 是小数,即包含小数点。

高精度乘法+高精度加法

明天写题解

#include<bits/stdc++.h>
using namespace std;// 乘法函数,用于将向量 a 中的每个元素乘以整数 n,并返回结果向量
vector<int> mul(vector<int> a,int n)
{vector<int> c; // 结果向量int t=0; // 用于累计进位for(int i=0;i<a.size()||t;i++){if(i<a.size()) t+=a[i]*n; // 计算当前位与 n 的乘积加上之前的进位c.push_back(t%10); // 将乘积的个位数加入结果向量t/=10; // 更新进位}return c; // 返回结果向量
} // 加法函数,用于将向量 b 的每个元素与整数 n 相加,并返回结果向量
vector<int> sum(vector<int> b,int n)
{vector<int> c; // 结果向量int t=0; // 用于累计进位for(int i=0;i<b.size();i++){t+=b[i]; // 加上当前位的值if(n) t+=n%10; // 如果 n 不为零,则加上 n 的当前位c.push_back(t%10); // 将和的个位数加入结果向量t/=10; // 更新进位n/=10; // 更新 n,移动到下一位}if(t) c.push_back(t); // 如果最后还有进位,加到结果向量的末尾return c; // 返回结果向量
}int main()
{int n; // 转换参数 nstring s; // 待转换的浮点数 d 作为字符串cin>>n>>s; // 从输入读取 n 和 sstring t; // 用于存储去掉小数点后的数字字符串int k=0; // 小数点后数字的个数// 移除小数点,并计算 kfor(int i=0;i<s.size();i++){if(s[i]!='.')t+=s[i];elsek=i; }k=t.size()-k; // 计算小数点后的位数vector<int> a; // 存储数字的向量,每个元素是一位数字// 将字符串 t 的数字转换为向量 afor(int i=t.size()-1;i>=0;i--)a.push_back(t[i]-'0');    // 将 a 乘以 2^nfor(int i=1;i<=n;i++)a=mul(a,2);reverse(a.begin(),a.end()); // 反转结果向量,以便从最高位开始处理int p=a[a.size()-k]; // 获取可能需要四舍五入的位if(p>=5) // 如果需要四舍五入{vector<int> b;// 构造需要增加 1 的向量 bfor(int i=a.size()-1-k;i>=0;i--){b.push_back(a[i]);}b=sum(b,1); // 对 b 加 1for(int i=b.size()-1;i>=0;i--)cout<<b[i]; // 输出结果}else // 如果不需要四舍五入{for(int i=0;i<a.size()-k;i++)cout<<a[i]; // 直接输出结果}return 0;
}

代码大致流程:

  1. 读取输入的转换参数 n 和浮点数 s
  2. 去除 s 中的小数点,并计算出小数点后的位数 k
  3. 将处理过的数字转换为一个由单个数字组成的向量 a,并对其进行 n 次乘以 2 的操作。
  4. 判断是否需要进行四舍五入,根据判断结果输出最终的整数值。

此代码通过数位分离和模拟手算乘法、加法的方式,精确地处理了大数问题,确保了在面对极大的 n 时仍能正确计算并避免浮点数精度问题。

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

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

相关文章

网络安全-自学笔记

一、自学网络安全学习的误区和陷阱 1.不要试图先成为一名程序员&#xff08;以编程为基础的学习&#xff09;再开始学习 我在之前的回答中&#xff0c;我都一再强调不要以编程为基础再开始学习网络安全&#xff0c;一般来说&#xff0c;学习编程不但学习周期长&#xff0c;而…

【力扣TOP100热题图解】T1.两数之和

题目链接点这里—— 力扣&#xff08;LeetCode&#xff09;​​​​​​ 法一&#xff1a;暴力枚举 最容易想到的方法是枚举数组中的每一个数 x&#xff0c;寻找数组中是否存在 target - x。 当我们使用遍历整个数组的方式寻找 target - x 时&#xff0c;需要注意到每一个位…

【Linux】磁盘管理和文件系统

目录 一、硬盘 1.硬盘结构 2.结构类型 二、MBR与磁盘分区 1.MBR主引导记录 2.磁盘分区结构 三、文件系统类型 四、linux系统添加并使用新硬盘的步骤 1.添加新的硬盘 2.刷新识别 3.进行分区 4.格式化&#xff0c;创建文件系统 5.挂载使用 一、硬盘 1.硬盘结构…

SpringBoot整合消息中间件(ActiveMQ,RabbitMQ,RocketMQ,Kafka)

消息中间件 消息消息队列JMS AMQPMQTTKafka Spring整合消息队列模拟消息队列的工作流程Spring整合ActiveMQSpring整合RabbitMQ直连交换机模式主题交换机模式 Spring整合RocketMQSpring整合kafka 消息 消息的发送方&#xff1a;生产者 消息的接收方&#xff1a;消费者 同步消息…

基于SSM项目高校在线请假与审批系统

采用技术 基于SpringBoot框架实现的web的智慧社区系统的设计与实现~ 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringMVCMyBatis 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 简介 本系统实现了管理员&#xff0c;教师&#xff0c;学生三个模…

OSPF动态路由实验(华为)

思科设备参考&#xff1a;OSPF动态路由实验&#xff08;思科&#xff09; 一&#xff0c;技术简介 OSPF&#xff08;Open Shortest Path First&#xff09;是一种内部网关协议&#xff0c;主要用于在单一自治系统内决策路由。它是一种基于链路状态的路由协议&#xff0c;通过…

探秘ChatGPT:写作论文的新奇技巧

ChatGPT无限次数:点击直达 探秘ChatGPT&#xff1a;写作论文的新奇技巧 近年来&#xff0c;随着人工智能技术的发展&#xff0c;ChatGPT作为一种强大的自然语言处理工具越来越受到关注。在学术界和工业界&#xff0c;人们开始探索如何利用ChatGPT这样的模型来辅助写作&#xf…

Linux下SPI设备驱动实验:实现SPI发送/接收数据的函数

一. 简介 前面文章介绍了SPI设备数据收发处理流程&#xff0c;后面几篇文章实现了SPI设备驱动框架&#xff0c;加入了字符设备驱动框架代码。文章如下&#xff1a; SPI 设备驱动编写流程&#xff1a;SPI 设备数据收发处理流程中涉及的结构体与函数-CSDN博客 SPI 设备驱动编写…

DevOps(二)Jenkins详细介绍和15天学习计划

Jenkins 是一个开源的自动化服务器&#xff0c;广泛用于持续集成和持续部署&#xff08;CI/CD&#xff09;的自动化过程中。它支持开发者在软件开发的各个阶段自动构建、测试并部署应用程序&#xff0c;从而提高开发效率并减少错误。下面详细介绍Jenkins: 一、核心功能 1、构…

【洛谷 P8802】[蓝桥杯 2022 国 B] 出差 题解(带权无向图+单源最短路+Dijkstra算法+链式前向星+最小堆)

[蓝桥杯 2022 国 B] 出差 题目描述 A \mathrm{A} A 国有 N N N 个城市&#xff0c;编号为 1 … N 1 \ldots N 1…N 小明是编号为 1 1 1 的城市中一家公司的员工&#xff0c;今天突然接到了上级通知需要去编号为 N N N 的城市出差。 由于疫情原因&#xff0c;很多直达的交…

webpack + ts 搭建 web 应用

初始化 npm init -y一、 依赖下载 typescript相关&#xff1a; ts-loader: ts文件加载器 npm i typescript ts-loader -Dwebpack相关 webpack-cli: 命令行工具 webpack-dev-server&#xff1a;webpack开发服务器 webpack-merge : webpack配置合并 clean-webpack-plugin: we…

MXXE利用XXE漏洞快速获取服务器敏感文件工具

https://github.com/MartinxMax/MXXE 关于 MXXEV1.2升级版,快速获取服务器敏感文件 获取Windows服务器敏感文件 把数据包复制到payload.txt进行自动注入 $ python3 MXXE.py -lh 10.10.16.5 -user Daniel -server windows 幸运的是我们找到了服务器的私匙 获取Linux服务器敏感…

LeetCode-706. 设计哈希映射【设计 数组 哈希表 链表 哈希函数】

LeetCode-706. 设计哈希映射【设计 数组 哈希表 链表 哈希函数】 题目描述&#xff1a;解题思路一&#xff1a;超大数组解题思路二&#xff1a;拉链法解题思路三&#xff1a; 题目描述&#xff1a; 不使用任何内建的哈希表库设计一个哈希映射&#xff08;HashMap&#xff09;。…

数字孪生与企业

数字孪生技术&#xff0c;简而言之&#xff0c;就是创造一个物理实体的数字双胞胎&#xff0c;在虚拟世界中精确模拟现实世界的行为、过程和系统。这种技术的核心在于&#xff0c;它允许我们在数字环境中实时地监控、分析和优化其物理对应物的性能和效率。数字孪生的应用场景极…

【深入理解】width 的默认值,2024年最新面试复盘

先自我介绍一下&#xff0c;小编浙江大学毕业&#xff0c;去过华为、字节跳动等大厂&#xff0c;目前阿里P7 深知大多数程序员&#xff0c;想要提升技能&#xff0c;往往是自己摸索成长&#xff0c;但自己不成体系的自学效果低效又漫长&#xff0c;而且极易碰到天花板技术停滞…

Win 运维 | Windows Server 系统事件日志浅析与日志审计实践

[ 重剑无锋&#xff0c;大巧不工。] 大家好&#xff0c;我是【WeiyiGeek/唯一极客】一个正在向全栈工程师(SecDevOps)前进的技术爱好者 作者微信&#xff1a;WeiyiGeeker 公众号/知识星球&#xff1a;全栈工程师修炼指南 主页博客: 【 https://weiyigeek.top 】- 为者常成&…

mysql 如何查看一条SQL被回滚了

MySQL中查看一条SQL是否被回滚&#xff0c;通常不是一个直接的过程&#xff0c;因为MySQL本身并不提供直接的方式来追踪单个SQL语句的执行和回滚情况。但是&#xff0c;你可以通过一些方法和工具来间接地达到这个目的。下面&#xff0c;我将从多个角度介绍如何分析和判断SQL语句…

OpenCV2之简单处理视频

OpenCV2 https://www.geeksforgeeks.org/opencv-python-tutorial/ 视频采集 import cv2currentframe 0cap cv2.VideoCapture(0)while cap.isOpened():ret, frame cap.read()cv2.imshow(frame, frame)# 隔多少帧保存一张图片if currentframe % 10 0:cv2.imwrite(f{TEMP_PAT…

mysql中的FORCE_MASTER是什么

FORCE_MASTER 解释&#xff1a; FORCE_MASTER 在 MySQL 中并不是一个标准的 SQL 关键字或系统变量&#xff0c;而是作为一种查询优化器提示&#xff08;query hint&#xff09;的非正式用法&#xff0c;用来指示 MySQL 引擎强制在主数据库上执行特定的查询。这种用法通常是作为…

Go语言使用标准库时常见错误

Go的标准库是一组增加和拓展语言的核心包。然而,很容易误用标准库,或者我们对其行为理解有限,导致产生了bug或不应该在生产级应用程序中某些功能。 1. 提供错误的持续时间 标准库提供了获取 time.Duration 的常用函数和方法,但由于 time.Duration 是 int64 的自定义类型,…