UVa11809-Floating-Point Numbers
题目分析:
如果每组数都要计算比较找到对应的m和e运算量太大,所以先打表,涉及浮点数表示的一些数学知识。
假设当前一层M和E的值为m和e,它们的位数分别为i和j。
首先计算m的值,用二进制表示的话,m的值为0.11…,也就是m = 2^(-1) + 2^(-2) + … + 2^(-1 - i)(i比实际1的个数少1个),也就是m = 1 - 2^(-1 - i)。
接下来就是计算e的值,不难得出,e = 2^j - 1。
那么也就有m * 2^e = A * 10^B,似乎可以直接计算了。然而,直接这样算的话是不行的,因为当e太大的话(e最大可以是1073741823,注意这还只是2的指数),等号左边的数就会超出上限,所以要想继续算下去,就得自己去想办法再写出满足要求的类来,这显然太麻烦了。所以,这个时候我们对等式两边同时取对数,这个时候就有 log10(m) + e × log10(2) = log10(A) + B。因为此时m和e的值都是确定的,所以不妨令等式左边为t,也就有t = log10(A) + B。
这个时候就有问题了,A和B怎么算。
科学记数法对于A,有1 ≤ A < 10。那么0 < log10(A) < 1。所以t的小数部分就是log10(A),整数部分就是B,即B = ⌊t⌋,A = 10^(t - B)。那么接下来,我们只需要开出两个二维数组来,分别记录对应i和j下A和B的大小,之后从输入里提取出A和B的大小,去二维数组里面查找对应的i和j即可。
编程知识:
1.如果浮点数赋值给整数,小数部分会被截取。
2.类似这样5.699141892149156e76的数据串,想把e两端的数据分别赋给两个变量,可以先用string接收整个数据串,将string中的'e'替换为‘ ’,
再将string拷贝到istringstream的一个对象,再从该对象读取到两个变量即可。
AC代码:
转载于:https://www.cnblogs.com/lxabc/p/5289124.html
UVa11809-Floating-Point Numbers相关推荐
- 空间点像素索引(二)
空间点像素索引(二) 三. Hilbert Curve 希尔伯特曲线 希尔伯特曲线的定义 希尔伯特曲线一种能填充满一个平面正方形的分形曲线(空间填充曲线),由大卫·希尔伯特在1891年提出.由于它能填 ...
- 定时调度模块:sched
定时调度模块:sched """A generally useful event scheduler class. 事件调度器类Each instance of this ...
- 在Server 2003上部署IIS+PHP+MySQL配置清单
在Server 2003上部署IIS+PHP+MySQL I.安装Windows Server 2003 将光盘放入光驱中,设置BIOS,从CDROM引导加载安装程序,等待启动: 设置注册信息,名字和 ...
- 一文了解Python常见的序列化操作
关于我 编程界的一名小小程序猿,目前在一个创业团队任team lead,技术栈涉及Android.Python.Java和Go,这个也是我们团队的主要技术栈. 联系:hylinux1024@gmail ...
- c语言中浮点数和整数转换_C中的数据类型-整数,浮点数和空隙说明
c语言中浮点数和整数转换 C中的数据类型 (Data Types in C) There are several different ways to store data in C, and they ...
- 编码中统一更该变量的快捷键_更多项目想法,以提高您的编码技能
编码中统一更该变量的快捷键 Two weeks ago I published an article containing 15 project ideas that you can build to ...
- 为什么要在JavaScript中使用静态类型? (使用Flow进行静态打字的4部分入门)
by Preethi Kasireddy 通过Preethi Kasireddy 为什么要在JavaScript中使用静态类型? (使用Flow进行静态打字的4部分入门) (Why use stati ...
- Numpy入门教程:09. 输入和输出
背景 什么是 NumPy 呢? NumPy 这个词来源于两个单词 – Numerical和Python.其是一个功能强大的 Python 库,可以帮助程序员轻松地进行数值计算,通常应用于以下场景: 执 ...
- php sqlsrv_query,sqlsrv_query
sqlsrv_querysqlsrv_query 04/11/2019 本文内容 准备并执行语句.Prepares and executes a statement. 语法Syntax sqlsrv_ ...
- Hadoop生态上几个技术的关系与区别:hive、pig、hbase 关系与区别
Pig 一种操作hadoop的轻量级脚本语言,最初又雅虎公司推出,不过现在正在走下坡路了.当初雅虎自己慢慢退出pig的维护之后将它开源贡献到开源社区由所有爱好者来维护.不过现在还是有些公司在用,不过我 ...
最新文章
- 别研究买房了,墓地你研究过吗?
- centos6.4安装及升级gcc 4.8.2(已实践)
- 深入学习Web Service系列----异步开发模式
- Python爬虫从入门到放弃(十三)之 Scrapy框架的命令行详解
- lol最强最高输出的adc_LOL:官方公布ADC的输出能力,最强最弱都是谁?德莱文不是最高的...
- mysql 数据库基础教程(一)
- pe如何自动加载外置工具_[分享] PE自动检测安装驱动 外置组件[01-17更新]
- 解决Office2010每次打开都要配置进度的问题
- 凯利公式计算器安卓_手机计算器别只用来算数!1秒开启隐藏功能,你不会还没发现吧...
- 对任意合式公式求真值表以及主析取范式和主合取范式(JAVA)
- Android studio练接网易mumu模拟器
- (2)响应式流——响应式Spring的道法术器
- 页面滚动到指定位置的方法
- 很好听的曲子《红枣树》,歌词写的很好,摘抄一下
- PAT 甲级 图形输出 1031 Hello World for U (20 分)
- SpringMvc中的校验框架@valid和@validation的概念及相关使用 和BindingResult bindingResult...
- Java获取下周一、下周日、下个月第一天和次年第一天
- Linux创建和删除目录
- 信号检测与估计理论_论文解读 | 利用脑功能连接实现疲劳驾驶检测
- windows上查看u盘ext4分区数据
热门文章
- PLOS_ONE_Genome-Wide Analysis of Long Noncoding RNA (lncRNA) Expression in Hepatoblastoma Tissues
- python mro c3_Python的MRO以及C3线性化算法
- antd option宽度自适应_前端基础:自适应布局之rem布局基础
- 系统学习NLP(二十二)--主题模型LDA
- python字典forward_《Python机器学习基础教程》
- 无法为jsp编译类_《刺激战场》改名为《和平精英》,有2类玩家或可能无法登陆游戏...
- Markdown语法(一)标题段落分割线
- linux route配置网关,Linux使用route配置路由
- python 手机自动化操作_Python自动化办公之word操作
- python 与栈 入门