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. STL insert()使用

    下面我以vector的insert()为例: c++ 98: single element (1) iterator insert (iterator position, const value_ty ...

  2. BZOJ 1385: [Baltic2000]Division expression

    题目 1385: [Baltic2000]Division expression Time Limit: 5 Sec  Memory Limit: 64 MB Description 除法表达式有如下 ...

  3. 16个值得个人站长做的广告联盟[转自cnzz]

    建站也有好多年了,也建了几个站,有些微波收入, 反复测试了挺多广告联盟, 下面介绍一下: 1.googleadsense联盟: 推荐指数:☆☆☆☆☆ Google广告联盟是现在信誉最好的广告提供商之一 ...

  4. 1297 - Largest Box(三分)

    1297 - Largest Box   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB In t ...

  5. C++数据结构之图

    图的实现是一件很麻烦的事情,很多同学可能在学数据结构时只是理解了图的基本操作和遍历原理,但并没有动手实践过.在此,我说说我的实现过程. 首先,在草稿纸上画一个图表,这里是有向图,无向图也一样,如下: ...

  6. 【Web】java异常处理

    J2EE中一般对异常状况的处理都可以用两种情况对其进行相应处理. 1. 通常情况下,一般异常处理可以选择用throw.throws从底层一直往上面抛,直到抛到Action,让其将异常显示在页面上面进行 ...

  7. UIViewController XIB/NIB加载过程

    UIViewController中关于nib初始化的函数 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBu ...

  8. 【第一篇:C++与opencv】图片的读取和显示

    这里介绍C++版本的opencv,和C语言版本有些不同,先看代码^_^ [编译环境:opencv2.4.4和VS2008] #include "stdafx.h" #include ...

  9. javascript 学习随笔3

    <html> <head> <script type="text/javascript"> function startTime() { var ...

  10. java:转换时间格式为String

    SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); Date curDate = new ...