28行代码AC——习题3-12 浮点数(UVA 11809 - Floating-Point Numbers)——解题报告
励志用少的代码做高效的表达
题目(提交)链接→UVA-11809
算是个数学题吧,虽然在AOAPC上面给放到象征水题的第三章里面了。
写题解的时候突然意识到了这个问题,读题的时候很多人,包括我,都把AeB默认为了科学记数法,在ACM协会群里面讨论的时候很多人也都说这是科学计数法。先来看如果是科学记数法的时候应该怎么办。
这种办法在UVA上面是可以直接AC的,但是我却感觉这题这样A了有点数据太水的感觉,秉着处女座+强迫症死磕到底的精神,我们看下哪里有问题。
0.569914189214915e77
0.056991418921491e78
0.005699141892149e79
0.000569914189214e80
另外,在查表的时候还应该注意精度的问题,15位有效数字对于double来说精度似乎也不够,而且计算出所需要的整数值其实需要的精度也没有那么高,所以这里的精度就只用到了1e-4的程度。
代码:
#include <bits/stdc++.h>
using namespace std;
int main() {double M[20][40];long long E[20][40];// 打表for(int i = 0; i <= 9; ++i) for(int j = 1; j <= 30; ++j) {double m = 1 - pow(2, -1 - i), e = pow(2, j) - 1;double t = log10(m) + e * log10(2);E[i][j] = t, M[i][j] = pow(10, t - E[i][j]);}// 输入并输出结果string in;while(cin >> in && in != "0e0") {// 处理输入for(string::iterator i = in.begin(); i != in.end(); ++i) if(*i == 'e') *i = ' ';istringstream ss(in);double A; int B;ss >> A >> B;// 在打好的表中寻找答案for(int i = 0; i <= 9; ++i) for(int j = 1; j <= 30; ++j) if(B == E[i][j] && (fabs(A - M[i][j]) < 1e-4) {cout << i << ' ' << j << endl;break;}}
}
拨云见日,未来可期
28行代码AC——习题3-12 浮点数(UVA 11809 - Floating-Point Numbers)——解题报告相关推荐
- 11行代码AC——习题2-4 子序列的和(subsequence)——解题报告
励志用尽量少的代码做高效的表达. 题目描述: 输入两个正整数n<m<106,输出1/(n²)+1/((n+1)²)+--+1/(m²),保留5位小数.输入包含多组数据,结束标记为n=m=0 ...
- 31行代码AC——PTA 求二叉树的叶子结点个数 (20分)——解题报告
励志用尽量少的代码做高效的表达. 以二叉链表作为二叉树的存储结构,求二叉树的叶子结点个数. 输入格式: 输入二叉树的先序序列. 提示:一棵二叉树的先序序列是一个字符串,若字符是'#',表示该二叉树是空 ...
- 21行代码AC——习题5-1 代码对齐(Alignment of Code, UVa1593)——解题报告
题意: 输入若干行代码,要求各列单词的左边界对齐且尽量靠左,单词之间至少要空一格,每个单词不超过80个字符,每行不超过180个字符,一共最多1000行. 思路: 1.输入内容存入二维数组 2.找出每列 ...
- 26行代码AC——习题3-2 分子量 (UVa1586,Molar Mass)——解题报告
大意: 给出分子式,式中只包含以下四种元素.求分子量. C:12.01 H: 1.008 O: 16.00 N: 14.01 Sample Input 4 C C6H5OH NH2CH2COOH C1 ...
- 28行代码AC——Minimum Sum LCM UVA - 10791(最大质因子)
励志用尽量少的代码做高效表达 题目(提交)链接-->UVA - 10791 题意 输入正整数n,找至少两个数,使得他们的最小公倍数(Least Common Multiple)为n且要输出最小的 ...
- 21行代码AC——习题3-7 DNA序列(UVa-1368)_解题报告
励志用尽量少的代码做高效表达. 题目(提交)链接→UVa-1368 思路: DNA序列:按列遍历,记录每一列出现次数最多(若同样多,则字典序最小)的字母,录入s串累加. 距离:重新遍历,录入出现次数比 ...
- 22行代码AC——习题5-6 对称轴(Symmetry,UVa1595)——解题报告
励志用尽量少的代码做高效的表达. 题目(提交)链接→UVa-1595 思路: 此题本质是一道笛卡尔坐标系上的对称性问题. 判定性问题:由于只要能判别图像是否左右对称即可,无需确认关于哪条垂直线对称,那 ...
- 15行代码AC——习题3-3 数数字 (UVa1225,Digit Counting)
大意: 把n(n<=10000)个整数顺序写在一起,求0~9分别出现多少次 Sample Input 2 3 13 Sample Output 0 1 1 1 0 0 0 0 0 0 1 6 2 ...
- 15行代码AC——习题3-1 得分 (UVa1585,Score)
题意概述 给出一个由O和X组成的串,统计得分,O得分为目前连续出现的O的个数,X的得分为0. 如:OOXXOXXOOO得分为:1+2+0+0+1+0+0+1+2+3=10 Sample Input 5 ...
最新文章
- C#/Net代码精简优化技巧(3)
- Android 博客园客户端 (八) 下拉刷新、分页,AsyncTask
- 【NetApp】ROOT VOLUME NOT WORKING PROPERLY: RECOVERY REQUIRED
- [BZOJ]3436: 小K的农场
- 用学生编程记录预测学习成果,第二届计算机教育数据挖掘大赛, 赢取现金奖励+顶刊发表机会!...
- as3.0横向渐变发光字
- Word2013 设置默认缩进
- php 使用redis队列简单实用
- cad计算机试题及答案,CAD考试试题库及参考答案整理版.doc
- 燕东微通过注册:预计年营收超20亿 亦庄国投与京东方是股东
- device-side assert triggered原因和解决方法
- fastjson 是反射吗_6种超声检测灵敏度,你都知道吗?
- 电脑右下角的扬声器出现了红叉
- python考研成绩查询_2020-09-08考研成绩预测模型
- @Value为null问题排查及解决方法
- LDAP认证服务客户端配置
- (转)QQ在线客服代码
- 理解pandas的groupby().apply()
- unity3D---3Dmaxs给带骨骼蒙皮的模型绑定bip
- 环模制粒机设计(说明书+CAD)