http://acm.pku.edu.cn/JudgeOnline/problem?id=1140
Код:
#include <stdio.h>
main(){
int a ,b ,yushu[1200] ,r ,i ,j;
int find;
scanf("%d%d",&a,&b);
while( a != 0 && b != 0)
{
yushu[0] = a;
printf(".");
i = 1;
find = 0;
while(1)
{
r = yushu[i-1]*10/b;
yushu[i] = yushu[i-1]*10%b;
printf("%d",r);
if(yushu[i]==0)
{
find = 2;
break;
}
for( j = 0 ; j < i ; j++)
{
if(yushu[j]==yushu[i])
{
find = 1;
break;
}
}
if(find==1 || find==2)break;
if( (i==49) || ( (i > 51) && ((i+1)%50==0) ) )printf("\n");
i++;
}/*inside while*/
if(find==1)
{
printf("\nThe last %d digits repeat forever.\n",i-j);
}else{
printf("\nThis expansion terminates.\n");
}
scanf("%d%d",&a,&b);
}/*while*/
}