📄 fracdec.cpp
字号:
/*
ID: chenkai4
PROG: fracdec
LANG: C++
*/
#include <iostream>
using namespace std;
bool hash[100001];
int chuxian[100001]={0};
int N,D;
char nums[100000];int l=0;
int main()
{
freopen("fracdec.in","r",stdin);
freopen("fracdec.out","w",stdout);
scanf("%d%d",&N,&D);
int num1=N/D;
if(num1==0)
nums[++l]='0';
else
while(num1)
{
nums[++l]=char(num1%10+(int)'0');
num1/=10;
}
char t;
for(int a=1;a<=l/2;a++)
{t=nums[a];nums[a]=nums[l-a+1];nums[l-a+1]=t;}
nums[++l]='.';
N%=D;
if(N==0)
nums[++l]='0';
else
while(N)
{
if(!hash[N])
{
hash[N]=true;
chuxian[N]=l+1;
N*=10;
nums[++l]=char(N/D+(int)'0');
N%=D;
}
else
break;
}
if(chuxian[N])
{
int ccount=0;
for(int a=1;a<=chuxian[N]-1;a++)
{printf("%c",nums[a]);ccount++;if(ccount%76==0){ccount=0;printf("\n");}}
printf("(");ccount++;if(ccount%76==0){ccount=0;printf("\n");}
for(int a=chuxian[N];a<=l;a++)
{printf("%c",nums[a]);ccount++;if(ccount%76==0){ccount=0;printf("\n");}}
printf(")");
}
else
{
int ccount=0;
for(int a=1;a<=l;a++)
{printf("%c",nums[a]);ccount++;if(ccount%76==0&&a!=l){ccount=0;printf("\n");}}
}
printf("\n");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -