八進位制小數

2021-10-06 01:18:02 字數 903 閱讀 5711

描述

八進位制有限小數均可以用十進位制有限小數精確地表示。比如,八進位制裡面的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的八進位制小數都可以表示成小數點後位數不多於...