R格式 | 第十五届蓝桥杯C++B组

ops/2025/3/14 9:49:16/

小蓝最近在研究一种浮点数的表示方法:RR 格式。

对于一个大于 00 的浮点数 dd,可以用 RR 格式的整数来表示。

给定一个转换参数 nn,将浮点数转换为 RR 格式整数的做法是:

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

一行输入一个整数 nn 和一个浮点数 dd,分别表示转换参数,和待转换的浮点数。

输出格式

输出一行表示答案:dd 用 RR 格式表示出来的值。

数据范围

用 ll 表示将 dd 视为字符串时的长度。
对于 50%50% 的评测用例:1≤n≤101≤n≤10,1≤l≤151≤l≤15。
对于 100%100% 的评测用例:1≤n≤10001≤n≤1000,1≤l≤10241≤l≤1024;保证 dd 是小数,即包含小数点。

输入样例:
2 3.14
输出样例:
13
样例解释

3.14×22=12.563.14×22=12.56,四舍五入后为 1313。

题解:

        本来看到1024位数和1000次方,就以为是有什么小技巧在里面,但是,什么都没有发现。

        计算了一下,1024*1000才不过7次级,就是一道普通的高精度运算题,使用字符串。

        普通地每一位乘2,大于十就进位。

        在四舍五入的时候要注意一下,是否前面有9,是否有很多9,是否要字符串长度加一,比如999.75四舍五入是1000,这个1要处理,其他就没了。

代码:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<iomanip>
#include<queue>
#include<stack>
#include<vector>
#include<unordered_set>
#include<unordered_map>
#include<map>
#include<set>
using namespace std;
typedef long long int ll;int n;
string s;string ride(string s){string a;bool pl=false;for(int i=s.size()-1;i>=0;i--){if(s[i]=='.'){a='.'+a;}else{//cout << "s[i]: " << s[i] << "\n";int t=(s[i]-48)*2;char ch=(t%10)+48;a=ch+a;if(pl){a[0]++;pl=false;}if(t>=10){if(i==0){a='1'+a;}pl=true;}//cout << a << "\n";}}//cout << a << "\n";return a;}int main(){cin >> n;cin >> s;for(int i=0;i<n;i++){string a=ride(s);s=a;}//cout << s << "\n";for(int i=0;i<s.size();i++){if(s[i]=='.'){if((s[i+1]-48)>=5){int t=i-1;bool x=false;while(s[t]=='9'){s[t]='0';t--;if(t == -1){cout << '1';x=true;break;}}if(!x){s[t]++;}for(int j=0;j<i;j++){cout << s[j];}}else{for(int j=0;j<i;j++){cout << s[j];}}}}
}


http://www.ppmy.cn/ops/165629.html

相关文章

vue知识点(4)

依赖注入 Provide (提供) 父组件通过 provide 提供数据或方法。 <script setup> import { provide } from vueprovide(/* 注入名 */ message, /* 值 */ hello!) </script>Inject (注入) 子组件通过 inject 接收父组件提供的数据或方法。 <script setup>…

江科大51单片机笔记【16】AD/DA转换(下)

写在前言 此为博主自学江科大51单片机&#xff08;B站&#xff09;的笔记&#xff0c;方便后续重温知识 在后面的章节中&#xff0c;为了防止篇幅过长和易于查找&#xff0c;我把一个小节分成两部分来发&#xff0c;上章节主要是关于本节课的硬件介绍、电路图、原理图等理论知识…

《MySQL数据库从零搭建到高效管理|库的基本操作》

目录 一、数据库的操作 1.1 展示数据库 1.2 创建数据库 1.3 使用数据库 1.4 查看当前数据库 1.5 删除数据库 1.6 小结 二、常用数据类型 2.1 数值类型 2.2 字符串类型 2.3 日期类型 一、数据库的操作 打开MySQL命令行客户端&#xff0c;安装完MySQL后会有两个客户端…

C语言(23)

字符串函数 11.strstr函数 1.1函数介绍&#xff1a; 头文件&#xff1a;string.h char *strstr ( const char * str1,const char *str2); 作用&#xff1a;在一个字符串&#xff08;str1&#xff09;中寻找另外一个字符串&#xff08;str2&#xff09;是否出现过 如果找到…

从异步讲到回调函数

在讲接下来的要点之前&#xff0c;我们必须理解两个名词&#xff1a;同步和异步。 所谓同步&#xff0c;指的是协同步调。既然叫协同&#xff0c;所以至少要有2个以上的事物存在。协同的结果就是&#xff1a;多个事物不能同时进行&#xff0c;必须一个一个的来&#xff0c;上一…

给AI编程泼一盆冷水

AI确实扩大了普通人的能力边界&#xff0c;但是如果你连自己想要什么都描述不清楚&#xff0c;更不知道AI干了什么&#xff0c;你最好停下来认真的学习一下。 AI并没有消除认知差距&#xff0c;而是让人与人的认知差距急剧拉大了。 一、效率提升与隐性成本的博弈 AI编程工具如…

React 常用 Hooks 详细解析

React Hooks 是 React 16.8 引入的核心特性&#xff0c;允许在函数组件中使用状态、生命周期等特性&#xff0c;替代类组件的复杂逻辑。以下是常用 Hooks 的详细解析及最佳实践&#xff1a; 1. useState&#xff1a;状态管理 用途&#xff1a;在函数组件中定义和更新局部状态。…

鸿蒙开发者社区资源的重要性

鸿蒙系统&#xff0c;作为华为公司自主研发的操作系统&#xff0c;旨在为各类智能设备提供统一的平台。它不仅支持手机、平板电脑等移动设备&#xff0c;还涵盖了物联网&#xff08;IoT&#xff09;设备和其他智能家居产品。鸿蒙系统的开发环境和工具链对于开发者来说至关重要&…