百练 2765 八进制小数 解题呈报
添加时间:2013-5-25 点击量:
链接:http://poj.grids.cn/practice/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) {
...
}
代码:
1 #include <iostream>
2 #include <cstdio>
3 #include <cstdlib>
4 #include <cstring>
5 using namespace std;
6 int main()
7 {
8 //freopen(F:\\input.txt,r,stdin);
9
10 char octal[100];
11 while(cin >>octal)
12 {
13 double sum = 0.0;
14 double step = 0.125;
15 int length = strlen(octal);
16 for(int i = 2; i < length; i++)
17 {
18 sum += (octal[i] - 0) step;
19 step = step 0.125;
20 }
21
22 printf(%s [8] = %0.45g [10]\n,octal,sum);
23 }
24
25 return 0;
26 }
思路:
1.用%0.45g解决精度题目
原来,再大的房子,再大的床,没有相爱的人陪伴,都只是冰冷的物质。而如果身边有爱人陪伴,即使房子小,床小,也觉得无关紧要,因为这些物质上面有了爱的温度,成了家的元素。—— 何珞《婚房》#书摘#
链接:http://poj.grids.cn/practice/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) {
...
}
代码:
1 #include <iostream>
2 #include <cstdio>
3 #include <cstdlib>
4 #include <cstring>
5 using namespace std;
6 int main()
7 {
8 //freopen(F:\\input.txt,r,stdin);
9
10 char octal[100];
11 while(cin >>octal)
12 {
13 double sum = 0.0;
14 double step = 0.125;
15 int length = strlen(octal);
16 for(int i = 2; i < length; i++)
17 {
18 sum += (octal[i] - 0) step;
19 step = step 0.125;
20 }
21
22 printf(%s [8] = %0.45g [10]\n,octal,sum);
23 }
24
25 return 0;
26 }
思路:
1.用%0.45g解决精度题目
原来,再大的房子,再大的床,没有相爱的人陪伴,都只是冰冷的物质。而如果身边有爱人陪伴,即使房子小,床小,也觉得无关紧要,因为这些物质上面有了爱的温度,成了家的元素。—— 何珞《婚房》#书摘#