PKU 1140 Expanding Fractions
http://poj.org/problem?id=1140
分数を小数表示して、ループする桁の個数を表示しろというような問題。
よくあるような気がする問題。
int appmod[1000]; int n,m; char ans[1000]; void solve(){ memset(appmod,0,sizeof(appmod)); int sz=0; int osz=0; ans[osz++]='.';++sz; while(true){ appmod[n]=sz; n*=10; if(sz%50==0)ans[osz++]='\n'; ans[osz++]=n/m+'0';++sz; n-=n/m*m; if(appmod[n]){ ans[osz]=0; puts(ans); printf("The last %d digits repeat forever.\n",sz-appmod[n]); break; } if(!n){ ans[osz]=0; puts(ans); puts("This expansion terminates."); break; } } } main(){ while(cin>>n>>m,n)solve(); }