poj 2765 八进制小数

#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

const int N=1000;
char a[N];
int b[3*N];

int main()
{
while(scanf("%s",a)!=EOF)
{
memset(b,0,sizeof(b));
int len=strlen(a);
int iKeep,iTez,iToz=0;
for(int i=len-1;i>=2;i--)
{
iTez=0;
iKeep=0;
int iNum=a[i]-'0';
for(int j=0;j<=iToz||iNum;j++)
{
iNum=iNum*10+(iKeep<=iToz?b[iKeep++]:0);
b[iTez++]=iNum/8;
iNum%=8;
}
iToz=iTez-1;
}
printf("%s [8] = 0.",a);
for(int i=0;i<=iToz;i++)
printf("%d",b[i]);
printf(" [10]\n");
}
return 0;
}

posted @ 2012-04-07 11:41  逝者*恋世  阅读(345)  评论(0编辑  收藏  举报