[求助]小数的八进制转换十进制问题
要求输入一个八进制小数输出一个十进制小数.
测试数据如下:
SAMPLE INPUT
0.75
0.0001
0.01234567
SAMPLE OUTPUT
0.75 [8] = 0.953125 [10]
0.0001 [8] = 0.000244140625 [10]
0.01234567 [8] = 0.020408093929290771484375 [10]
要求输入一个八进制小数输出一个十进制小数.
测试数据如下:
SAMPLE INPUT
0.75
0.0001
0.01234567
SAMPLE OUTPUT
0.75 [8] = 0.953125 [10]
0.0001 [8] = 0.000244140625 [10]
0.01234567 [8] = 0.020408093929290771484375 [10]
可以采用循环的知识解决这个问题。
首先设置一个变量i用来控制小数的位数,变量sum用来接受变换的十进制书,对待变换数乘10,然后通过取余的方法分离出第一位,乘以8的负一次方,然后在对剩余的小数采用同样的方法,依次分离出,在依次累加,便可求出相应的10进制数,
代码如下:
main()
{
int i,j,sum=0,a,b,c;
scanf("%f",&a);
a=a*10;
b=a%10;
i=1;
while(b)
{
for(j=1;j<=i;j++)
c=c*j;
sum = sum +b*1/c;
b=b/10;
}
prinntf("转换的十进制数为:%d",sum);
}