又是一发水题,源码丢了,后来又补写了一个:
#include <stdio.h>
#include <string.h>
#define MAX 1000
int main()
{
int num[MAX];
int a,b,u=0;
while(~scanf("%d%d",&a,&b))
{
printf("%d/%d = %d.",a,b,a/b);
int i;
a%=b;
u++;
for(i=0;i<MAX;i++)
{
a=a*10;
num[i]=a/b;
a%=b;
}
int out=0,k,j;
for(i=0;i<MAX;i++)
{
for(j=i+1;j<MAX;j++)
{
if(num[i]==num[j])
{
out=1;
for(k=1;k<=j-i;k++)
if(num[j+k]!=num[i+k])
{
out=0;
break;
}
}
if(out)
goto end;
}
}
end:;
int t,time;
for(t=0;t<i;printf("%d",num[t++]));
printf("(");
if(j-t<=50)
for(;t<j;printf("%d",num[t++]));
else
{
for(time=0;t<j&&++time<=50;printf("%d",num[t++]));
printf("...");
}
printf(")");
printf("\n %d = number of digits in repeating cycle\n\n",j-i);
}
return 0;
}