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 八进制小数(精度问题)的更多相关文章

  1. POJ百练—IP地址转换

    #include<iostream> #include<cstdio> #include<cstring> using namespace std; ]; void ...

  2. [poj百练]2754:八皇后 回溯

    描述 会下国际象棋的人都很清楚:皇后可以在横.竖.斜线上不限步数地吃掉其他棋子.如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题. 对于某个满足要求的8皇后 ...

  3. 百练8216-分段函数-2016正式A题

    百练 / 2016计算机学科夏令营上机考试 已经结束 题目 排名 状态 统计 提问   A:分段函数 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 编写程序 ...

  4. ACM/ICPC 之 递归(POJ2663-完全覆盖+POJ1057(百练2775)-旧式文件结构图)

    POJ2663-完全覆盖 题解见首注释 //简单递推-三个米诺牌(3*2)为一个单位打草稿得出规律 //题意-3*n块方格能被1*2的米诺牌以多少种情况完全覆盖 //Memory 132K Time: ...

  5. Odoo小数精度及货币精度详解

    一.小数精度的设置 一般在设置-数据结构-精度设置中就可以对 小数类型的字段进行精度设置: 对于代码中定义为 digits=dp.get_precision('Product Price') 或 di ...

  6. 百练6255-单词反转-2016正式B题

    百练 / 2016计算机学科夏令营上机考试 已经结束 题目 排名 状态 统计 提问   B:单词翻转 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 输入一个 ...

  7. 【转】POJ百道水题列表

    以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...

  8. Poj OpenJudge 百练 1062 昂贵的聘礼

    1.Link: http://poj.org/problem?id=1062 http://bailian.openjudge.cn/practice/1062/ 2.Content: 昂贵的聘礼 T ...

  9. Poj OpenJudge 百练 1860 Currency Exchang

    1.Link: http://poj.org/problem?id=1860 http://bailian.openjudge.cn/practice/1860 2.Content: Currency ...

随机推荐

  1. java学习之内省

    反射加内省解决耦合问题 package com.gh.introspector; /** * JavaBean * @author ganhang * */ public class Dog { pr ...

  2. [置顶] android网络通讯之HttpClient4不指定参数名发送Post

    在HttpClient4之前都是通过List<NameValuePair>键值对的形式来向服务器传递参数 ,在4.0版本中在加入了不指定参数名发送数据的形式,利用StringEntity来 ...

  3. UVA 10652 Board Wrapping(凸包)

    The small sawmill in Mission, British Columbia, hasdeveloped a brand new way of packaging boards for ...

  4. SSH框架入门学习之二(spring)

    Spring也是一个开源框架,我在学习Spring的时候,认为最重要的几点是:IOC(控制反转).AOP(面向切面)和容器概念. 详细的教程还请大家去看网上的视频,这里贴一个小Demo以供学习. (前 ...

  5. eclipse svn2.0.0插件 手动安装方法

    org.tigris.subversion.javahl.ClientException: Unsupported working copy formatsvn: This client is too ...

  6. Cocos2d-x 精灵碰撞检測(方法二)

    将"Cocos2d-x 精灵碰撞检測(方法一)" update函数改动一下. 使用精灵boundingBox函数获取直接精灵边界框, 不用自己计算精灵矩形大小了,还比較精确,然后调 ...

  7. ThinkPHP - 模板使用函数

    模板使用函数 1.模板引擎自带函数:仅仅是输出变量并不能满足模板输出的需要,内置模板引擎支持对模板变量使用调节器和格式化功能,其实也就是提供函数支持,并支持多个函数同时使用.用于模板标签的函数可以是P ...

  8. Android 中 关闭部分 Activity 的方法总结

    每一个activity都有自己的生命周期,被打开了最终就要被关闭. 四种结束当前的activity方法 但如果已经启动了四个Activity:A,B,C和D, 在D Activity里,想再启动一个A ...

  9. php 学习笔记 数组2

    10.切割数组 array_slice(array, offset, length);返回一个由原始数组中的连续元素组成的新数组,参数1为原始数组,参数2为要复制的起始位置, 参数3要复制的个数:新数 ...

  10. 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 ...