//poj 1131 Octal Fractions
/*
题意:八进制小数到十进制小数的转化
题解:(引用aoxboxcox的题解)以0.123为例
初始时: 0[8]=0[10]
两边加上3[8]: 3[8]=3[10]
两边除以8[10]:0.3[8]=0.375[10]
两边加上2[8]: 2.3[8]=2.375[10]
两边除以8[10]:0.23[8]=0.296875[10]
两边加上1[8]: 1.23[8]=1.296875[10]
两边除以8[10]:0.123[8]=0.162109375[10]
*/
#include <iostream>
#include <algorithm>
using namespace std;
const int inf = 1<<28;
const int size = 26;
char str[1000000];
int a[1000000]; //a[0]存包括个位的位数,a[1]存个位,a[2]以后存十分位,百分位。。。
int sum;
void div8() //a[]/8
{
for (int i=1;i<a[0];i++)
{
a[i+1]+=(a[i]%8)*10;
a[i]/=8;
}
double res=a[a[0]]*1.0/8;
a[a[0]]=(int)res;
res-=a[a[0]];
while (res!=0){
res*=10;
a[++a[0]]=(int)(res);
res-=a[a[0]];
}
}
int main()
{
while (scanf("%s",str)!=EOF)
{
int len=strlen(str);
memset(a,0,sizeof(a));
a[0]=1;
for (int i=len-1;i>=2;i--)
{
a[1]=str[i]-'0';
div8();
}
printf("%s [8] = 0.",str);
for (int i=2;i<=a[0];i++) printf("%d",a[i]);
printf(" [10]/n");
}
system("pause");
return 0;
}