程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 百練 2765 八進制小數 解題報告

百練 2765 八進制小數 解題報告

編輯:C++入門知識

鏈接: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) {
...
}

代碼:

 #include <iostream>
 #include <cstdio>
 #include <cstdlib>
 #include <cstring>
         
     
      octal[     (cin >>           sum =           step =           length =         ( i = ; i < length; i++              sum += (octal[i] - ) *             step = step *           
         printf(      
       }

 

思路:

1.用%0.45g解決精度問題

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved