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. Visual c++例子,可不使用常规的对话框资源模板的情况下,动态创建对话框的方法

    详细说明:Visual c++例子,可不使用常规的对话框资源模板的情况下,动态创建对话框的方法.该方法可以在运行时在内存中直接建立对话框资源,使用起来更为灵活.适用于多个开发项目共享有界面的公用程序模 ...

  2. CUDA samples 2.3节 用CUDA示例来创建CUDA项目

    2.3.1. Creating CUDA Projects for Windows 略 2.3.2  Creating CUDA Projects for Linux 默认的samples的安装路径 ...

  3. opencv是什么

    OpenCV是一个用于图像处理.分析.机器视觉方面的开源函数库.       不管你是做科学研究,还是商业应用,opencv都能够作为你理想的工具库,由于,对于这两者,它全然是免费的.该库採用C及C+ ...

  4. server配置学习 ---- 关闭防火墙

    iptables 一种网络防火墙,在LINUX下使用,RedHat9.0版本号以上自带. 它能够实现NAT转换.能够做上网代理. 首先对于server的配置第一步来说就是关闭防火墙.在没有图形化中的l ...

  5. 数据库 isnull()、nvl()、ifnull() 使用

    SqlServer 插入字段值 为空 设置默认值 isnull(val_1,val_2) 当val_1为 null 的时候 返回 val_2的值 Oracle nvl(val_1,val_2) 当va ...

  6. ThinkPHP - 进行继承时的 构造函数

    被继承文件:PublicController.class.php <?php namespace Admin\Controller; use Think\Controller; class Pu ...

  7. BestCoder Round #50 (div.1) 1002 Run (HDU OJ 5365) 暴力枚举+正多边形判定

    题目:Click here 题意:给你n个点,有多少个正多边形(3,4,5,6). 分析:整点是不能构成正五边形和正三边形和正六边形的,所以只需暴力枚举四个点判断是否是正四边形即可. #include ...

  8. CodeForces 546D Soldier and Number Game 打表(求质因子个数)

    题目:戳我这个题与HDUOJ 5317有异曲同工之妙 题意:题意看懂了上面的一大串英文之后其实很简单,就是给你一个正整数n,问你n有多少个质因子,不过这里n是通过a!/b!给定的,也就是说n=(a!/ ...

  9. C++中,引用作为函数参数

    引用作为函数参数 C++之所以增加引用类型, 主要是把它作为函数参数,以扩充函数传递数据的功能. ———————————————————— c++,函数传参:(1)将变量名作为实参和形参.这时传给形参 ...

  10. Sprintf()的思考和引出的相关问题

    Sprintf()为什么不安全? 功能 把格式化的数据写入某个 字符串 缓冲区. 头文件 stdio.h 原型 int sprintf( char *buffer, const char *forma ...