比赛 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;
}