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*/ }