比赛 |
2009noip模拟试卷 |
评测结果 |
AAAAAAAAA |
题目名称 |
分数化小数 |
最终得分 |
100 |
用户昵称 |
灰里城 |
运行时间 |
0.009 s |
代码语言 |
C++ |
内存使用 |
1.46 MiB |
提交时间 |
2016-10-09 14:14:32 |
显示代码纯文本
#include <iostream>
#include <cstdio>
using namespace std;
const int maxn=100002;
int s[maxn]={0},y[maxn]={0},pos[maxn]={0};
bool xh=false;
int main(){
freopen("fracdec.in","r",stdin);
freopen("fracdec.out","w",stdout);
int N,D,i=0,ry;
scanf("%d%d",&N,&D);
printf("%d.",N/D);
ry=y[1]=N%D;pos[y[1]]=1;
if(y[1]==0){
printf("0");
goto end;
}
while(ry!=0){
s[++i]=ry*10/D;
y[i+1]=ry*10%D;
if(pos[y[i+1]]){xh=true;break;}
pos[y[i+1]]=i+1;
ry=y[i+1];
}
if(xh){
for(int k=1;k<pos[y[i+1]];++k)printf("%d",s[k]);
printf("(");int len=2;
for(int k=pos[y[i+1]];k<=i;++k){
++len;
printf("%d",s[k]);
if(len==76){printf("\n");len=0;}
}
printf(")");
}
else{
for(int k=1;k<=i;++k)
printf("%d",s[k]);
}
end:
printf("\n");
fclose(stdin);fclose(stdout);
return 0;
}