当前位置: 首页 > article >正文

P10425 [蓝桥杯 2024 省 B] R 格式

题目描述:

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

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

输入格式

一行一个整数 n 和一个浮点数 d。

输出格式

一行一个整数表示 d 用 R 格式表示出的值。

输入输出样例

输入 #1

2 3.14

输出 #1

13

说明/提示

样例 1 解释

3.14×2^2=12.56 ,四舍五入后为 13。

数据规模与约定

用 t 表示将 d 视为字符串时的长度。

  • 对于 50% 的数据,保证 n≤10,t≤15。
  • 对于全部的测试数据,保证1≤n≤1000,1≤t≤1024,保证 d 是小数,即包含小数点。

解题思路:

首先观察题目,题目中的数据大小1024位明显大于整形变量值,应当用string来存储。所以我们可以想到用高精度计算来解决这道题。

将浮点数d存储到字符串中去掉小数点后倒置(方便计算),接着进行相乘,对每位进行相乘,用数组存储。若数组数大于10就模10进位,之后需要检查一下计算后是否有位数的改变。

之后进行四舍五入的判断,判断之后需要检查进位以及位数是否发生变化,最后再导致输出结果。

样例代码:

#include <iostream>
#include <math.h>
#include <vector>
#include <algorithm>
using namespace std;
int n, arr[1000000], p, l;//数组开大一点
string q;
void cheng()
{
	for (int i = 1; i <= l; i++)//每一位乘
		arr[i] *= 2;
	for (int i = 1; i <= l; i++)//进位
	{
		arr[i + 1] += arr[i] / 10;
		arr[i] %= 10;
	}
	if (arr[l + 1])//相乘可能会导致位数增加所以要检查大小
		l++;
}
int main()
{
	cin >> n >> q;
	reverse(q.begin(), q.end());
	p = q.find(".");
	q.erase(p, 1);//去掉小数点将小数点的位置设置为p
	l = q.size();
	for (int i = 0; i < l; i++)//字符串转换
		arr[i + 1] = q[i] - '0';
	for (int i = 1; i <= n; i++)
		cheng();
	if (arr[p] >= 5)//四舍五入
		arr[p + 1]++;
	for (int i = p + 1; i <= l; i++)//检查四舍五入后的进位
	{
		arr[i + 1] += arr[i] / 10;
		arr[i] %= 10;
	}
	if (arr[l + 1])//检查位数变化
		l++;
	for (int i = l; i > p; i--)
		cout << arr[i];
	return 0;
}

 


http://www.kler.cn/a/447442.html

相关文章:

  • 我的个人博客正式上线了!
  • 如何使用 WebAssembly 扩展后端应用
  • 谷歌浏览器的扩展市场使用指南
  • Linux实现两台服务器之间ssh连接
  • C# 6.0 连接elasticsearch数据库
  • 力扣438-找到字符串中所有字母异位词
  • CSGHub开源版本v1.2.0更新
  • 【hackmyvm】p4l4nc4靶场
  • 【前端面试】list转树、拍平, 指标,
  • 堆排序【东北大学oj数据结构9-4】C++
  • ELK系列-(六)Redis也能作为消息队列?(下)
  • 用Python设置Excel工作表的页眉和页脚
  • Python解决安装包报错4.0.0-unsupported
  • 使用支持向量机(SVM)实现二分类
  • 数据倾斜的原因以及解决方法
  • SQL注入(SQL lnjection Base)21
  • 数据结构_平衡二叉树
  • 前端面试题整理-前端异步编程
  • 【Token】校验、会话技术、登录请求、拦截器【期末实训】实战项目学生和班级管理系统\Day15-后端Web实战(登录认证)\讲义
  • ip_forward函数
  • gesp(二级)(7)洛谷:B3865:[GESP202309 二级] 小杨的 X 字矩阵
  • STM32-笔记7-继电器定时开闭
  • 雅思真题短语梳理(八)
  • 常用的JVM启动参数有哪些?
  • 电子发票汇总改名,批量处理电子发票问题
  • ChatGPT接口测试用例生成的流程