描述
八進位制有限小數均可以用十進位制有限小數精確地表示。比如,八進位制裡面的0.75等於十進位制裡面的0.963125 (7/8 + 5/64)。所有小數點後位數為n的八進位制小數都可以表示成小數點後位數不多於3n的十進位制小數。
你的任務是寫乙個程式,把(0,1)之間的八進位制小數轉化成十進位制小數。
輸入一行,包含乙個八進位制小數。每個小數的形式是0.d1d2d3 … dk,這裡di是八進位制數0…7,dk不等於0,而且已知0 < k < 15。
輸出輸入如下形式的一行
0.d1d2d3…dk [8] = 0.d1d2d3…dm [10]
這裡左邊是輸入的八進位制小數,右邊是相等的十進位制小數。輸出的小數末尾不能有0,也就是說dm不等於0。注意空格位置。
樣例輸入
0.75
樣例輸出
0.75 [8] = 0.953125 [10]
我的解題
精度啊,可以使用大精度除數,不過很麻煩
還是用%g吧
知識%g 根據具體的數值選擇 %e 或 %f (當資料非常小時後面的可能省略,會用%e表示)
%g 用於列印浮點型資料時,會去掉多餘的零
printf("%.2g",0.0123); ====> 0.012 效果相當於除去0後的有效位數
**
#include
#include
#include
using
namespace std;
char ba[20]
;//八進位制的字元陣列
intmain()
printf
("%s"
,ba)
;printf
(" [8] = %.45g [10]\n"
,ans)
;}
03 八進位制小數
03 八進位制小數 總時間限制 1000ms 記憶體限制 65536kb 描述 八進位制有限小數均可以用十進位制有限小數精確地表示。比如,八進位制裡面的0.75等於十進位制裡面的0.963125 7 8 5 64 所有小數點後位數為n的八進位制小數都可以表示成小數點後位數不多於3n的十進位制小數。你...
03 八進位制小數
總時間限制 1000ms 記憶體限制 65536kb 描述八進位制有限小數均可以用十進位制有限小數精確地表示。比如,八進位制裡面的0.75等於十進位制裡面的0.963125 7 8 5 64 所有小數點後位數為n的八進位制小數都可以表示成小數點後位數不多於3n的十進位制小數。你的任務是寫乙個程式,把...
ZSC 1218 八進位制小數
time limit 1 sec memory limit 64 mb submit 49 solved 26 八進位制小數可以用十進位制小數精確的表示。比如,八進位制裡面的0.75等於十進位制裡面的0.963125 7 8 5 64 所有小數點後位數為n的八進位制小數都可以表示成小數點後位數不多於...