poj 百练 2765 八进制小数(精度问题)
2765:八进制小数
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描写叙述
- 八进制小数能够用十进制小数精确的表示。比方,八进制里面的0.75等于十进制里面的0.963125 (7/8 + 5/64)。全部小数点后位数为n的八进制小数都能够表示成小数点后位数不多于3n的十进制小数。
你的任务是写一个程序,把(0, 1)中的八进制小数转化成十进制小数。 - 输入
- 输入包含若干八进制小数,每一个小数占用一行。每一个小数的形式是0.d1d2d3 ... dk,这里di是八进制数0...7,并且已知0 < k < 15。
- 输出
- 对于每一个输入的八进制小数,输入例如以下形式的一行
0.d1d2d3 ... dk [8] = 0.D1D2D3 ... Dm [10]
这里左边是输入的八进制小数,右边是相等的十进制小数。输出的小数末尾不能有0,也就是说Dm不等于0。 - 例子输入
-
0.75
0.0001
0.01234567 - 例子输出
-
0.75 [8] = 0.953125 [10]
0.0001 [8] = 0.000244140625 [10]
0.01234567 [8] = 0.020408093929290771484375 [10] - 提示
- 假设你使用字符串读取八进制小数,你能够使用例如以下的形式中止输入
char octal[100];
while(cin >> octal) {
...
}这道题应该属于基础题了,刚開始看到这到题的时候,以为是高精度的题,開始都不敢用double来做,后来看到那个那个8进制数的范围才15,所以想到double也应该能够做吧,參考了一下别人的思路,好巧妙啊,直接通过字符串倒序处理,把8进制小数转化为十进制的整数,值得学习啊~
以下是代码。好简短的,主要是要掌握这样的思路,这样的巧妙的写法;
和曾经我们普通的求法不一样;
0.75(8)=5/64+7/8;
#include <cstdio>
#include <cstring>
int main()
{
char s[20];
int len;
double n;
while(scanf("%s",s)!=EOF)
{
n=0;
len=strlen(s);
for(int i=len-1;s[i]!='.';i--)//小数点前面的处理
{
n/=double(8.0);//转化为十进制
n+=double(s[i]-'0');
}
n/=double(8.0);//小数点前那一个还没处理
printf("%s",s);
printf(" [8] = %.45g [10]\n",n);//%g指代浮点数,去掉无意义的零
}
return 0;
}
poj 百练 2765 八进制小数(精度问题)的更多相关文章
- POJ百练—IP地址转换
#include<iostream> #include<cstdio> #include<cstring> using namespace std; ]; void ...
- [poj百练]2754:八皇后 回溯
描述 会下国际象棋的人都很清楚:皇后可以在横.竖.斜线上不限步数地吃掉其他棋子.如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题. 对于某个满足要求的8皇后 ...
- 百练8216-分段函数-2016正式A题
百练 / 2016计算机学科夏令营上机考试 已经结束 题目 排名 状态 统计 提问 A:分段函数 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 编写程序 ...
- ACM/ICPC 之 递归(POJ2663-完全覆盖+POJ1057(百练2775)-旧式文件结构图)
POJ2663-完全覆盖 题解见首注释 //简单递推-三个米诺牌(3*2)为一个单位打草稿得出规律 //题意-3*n块方格能被1*2的米诺牌以多少种情况完全覆盖 //Memory 132K Time: ...
- Odoo小数精度及货币精度详解
一.小数精度的设置 一般在设置-数据结构-精度设置中就可以对 小数类型的字段进行精度设置: 对于代码中定义为 digits=dp.get_precision('Product Price') 或 di ...
- 百练6255-单词反转-2016正式B题
百练 / 2016计算机学科夏令营上机考试 已经结束 题目 排名 状态 统计 提问 B:单词翻转 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 输入一个 ...
- 【转】POJ百道水题列表
以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...
- Poj OpenJudge 百练 1062 昂贵的聘礼
1.Link: http://poj.org/problem?id=1062 http://bailian.openjudge.cn/practice/1062/ 2.Content: 昂贵的聘礼 T ...
- Poj OpenJudge 百练 1860 Currency Exchang
1.Link: http://poj.org/problem?id=1860 http://bailian.openjudge.cn/practice/1860 2.Content: Currency ...
随机推荐
- java学习之内省
反射加内省解决耦合问题 package com.gh.introspector; /** * JavaBean * @author ganhang * */ public class Dog { pr ...
- [置顶] android网络通讯之HttpClient4不指定参数名发送Post
在HttpClient4之前都是通过List<NameValuePair>键值对的形式来向服务器传递参数 ,在4.0版本中在加入了不指定参数名发送数据的形式,利用StringEntity来 ...
- UVA 10652 Board Wrapping(凸包)
The small sawmill in Mission, British Columbia, hasdeveloped a brand new way of packaging boards for ...
- SSH框架入门学习之二(spring)
Spring也是一个开源框架,我在学习Spring的时候,认为最重要的几点是:IOC(控制反转).AOP(面向切面)和容器概念. 详细的教程还请大家去看网上的视频,这里贴一个小Demo以供学习. (前 ...
- eclipse svn2.0.0插件 手动安装方法
org.tigris.subversion.javahl.ClientException: Unsupported working copy formatsvn: This client is too ...
- Cocos2d-x 精灵碰撞检測(方法二)
将"Cocos2d-x 精灵碰撞检測(方法一)" update函数改动一下. 使用精灵boundingBox函数获取直接精灵边界框, 不用自己计算精灵矩形大小了,还比較精确,然后调 ...
- ThinkPHP - 模板使用函数
模板使用函数 1.模板引擎自带函数:仅仅是输出变量并不能满足模板输出的需要,内置模板引擎支持对模板变量使用调节器和格式化功能,其实也就是提供函数支持,并支持多个函数同时使用.用于模板标签的函数可以是P ...
- Android 中 关闭部分 Activity 的方法总结
每一个activity都有自己的生命周期,被打开了最终就要被关闭. 四种结束当前的activity方法 但如果已经启动了四个Activity:A,B,C和D, 在D Activity里,想再启动一个A ...
- php 学习笔记 数组2
10.切割数组 array_slice(array, offset, length);返回一个由原始数组中的连续元素组成的新数组,参数1为原始数组,参数2为要复制的起始位置, 参数3要复制的个数:新数 ...
- Google Code Jam Round 1A 2015 Problem B. Haircut 二分
Problem You are waiting in a long line to get a haircut at a trendy barber shop. The shop has B barb ...