题目分析:

  如果每组数都要计算比较找到对应的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相关推荐

  1. 空间点像素索引(二)

    空间点像素索引(二) 三. Hilbert Curve 希尔伯特曲线 希尔伯特曲线的定义 希尔伯特曲线一种能填充满一个平面正方形的分形曲线(空间填充曲线),由大卫·希尔伯特在1891年提出.由于它能填 ...

  2. 定时调度模块:sched

    定时调度模块:sched """A generally useful event scheduler class. 事件调度器类Each instance of this ...

  3. 在Server 2003上部署IIS+PHP+MySQL配置清单

    在Server 2003上部署IIS+PHP+MySQL I.安装Windows Server 2003 将光盘放入光驱中,设置BIOS,从CDROM引导加载安装程序,等待启动: 设置注册信息,名字和 ...

  4. 一文了解Python常见的序列化操作

    关于我 编程界的一名小小程序猿,目前在一个创业团队任team lead,技术栈涉及Android.Python.Java和Go,这个也是我们团队的主要技术栈. 联系:hylinux1024@gmail ...

  5. c语言中浮点数和整数转换_C中的数据类型-整数,浮点数和空隙说明

    c语言中浮点数和整数转换 C中的数据类型 (Data Types in C) There are several different ways to store data in C, and they ...

  6. 编码中统一更该变量的快捷键_更多项目想法,以提高您的编码技能

    编码中统一更该变量的快捷键 Two weeks ago I published an article containing 15 project ideas that you can build to ...

  7. 为什么要在JavaScript中使用静态类型? (使用Flow进行静态打字的4部分入门)

    by Preethi Kasireddy 通过Preethi Kasireddy 为什么要在JavaScript中使用静态类型? (使用Flow进行静态打字的4部分入门) (Why use stati ...

  8. Numpy入门教程:09. 输入和输出

    背景 什么是 NumPy 呢? NumPy 这个词来源于两个单词 – Numerical和Python.其是一个功能强大的 Python 库,可以帮助程序员轻松地进行数值计算,通常应用于以下场景: 执 ...

  9. php sqlsrv_query,sqlsrv_query

    sqlsrv_querysqlsrv_query 04/11/2019 本文内容 准备并执行语句.Prepares and executes a statement. 语法Syntax sqlsrv_ ...

  10. Hadoop生态上几个技术的关系与区别:hive、pig、hbase 关系与区别

    Pig 一种操作hadoop的轻量级脚本语言,最初又雅虎公司推出,不过现在正在走下坡路了.当初雅虎自己慢慢退出pig的维护之后将它开源贡献到开源社区由所有爱好者来维护.不过现在还是有些公司在用,不过我 ...

最新文章

  1. 别研究买房了,墓地你研究过吗?
  2. centos6.4安装及升级gcc 4.8.2(已实践)
  3. 深入学习Web Service系列----异步开发模式
  4. Python爬虫从入门到放弃(十三)之 Scrapy框架的命令行详解
  5. lol最强最高输出的adc_LOL:官方公布ADC的输出能力,最强最弱都是谁?德莱文不是最高的...
  6. mysql 数据库基础教程(一)
  7. pe如何自动加载外置工具_[分享] PE自动检测安装驱动 外置组件[01-17更新]
  8. 解决Office2010每次打开都要配置进度的问题
  9. 凯利公式计算器安卓_手机计算器别只用来算数!1秒开启隐藏功能,你不会还没发现吧...
  10. 对任意合式公式求真值表以及主析取范式和主合取范式(JAVA)
  11. Android studio练接网易mumu模拟器
  12. (2)响应式流——响应式Spring的道法术器
  13. 页面滚动到指定位置的方法
  14. 很好听的曲子《红枣树》,歌词写的很好,摘抄一下
  15. PAT 甲级 图形输出 1031 Hello World for U (20 分)
  16. SpringMvc中的校验框架@valid和@validation的概念及相关使用 和BindingResult bindingResult...
  17. Java获取下周一、下周日、下个月第一天和次年第一天
  18. Linux创建和删除目录
  19. 信号检测与估计理论_论文解读 | 利用脑功能连接实现疲劳驾驶检测
  20. windows上查看u盘ext4分区数据

热门文章

  1. PLOS_ONE_Genome-Wide Analysis of Long Noncoding RNA (lncRNA) Expression in Hepatoblastoma Tissues
  2. python mro c3_Python的MRO以及C3线性化算法
  3. antd option宽度自适应_前端基础:自适应布局之rem布局基础
  4. 系统学习NLP(二十二)--主题模型LDA
  5. python字典forward_《Python机器学习基础教程》
  6. 无法为jsp编译类_《刺激战场》改名为《和平精英》,有2类玩家或可能无法登陆游戏...
  7. Markdown语法(一)标题段落分割线
  8. linux route配置网关,Linux使用route配置路由
  9. python 手机自动化操作_Python自动化办公之word操作
  10. python 与栈 入门