//poj 1140
//sep9
#include<iostream>
using namespace std;
int vis[1024];
void solve(int a,int b)
{
int cnt=0,t=0;
memset(vis,-1,sizeof(vis));
vis[a]=cnt++;
a*=10;
printf(".");
while(1){
printf("%d",a/b);
++t;
if(t==49||(t>49&&(t+1)%50==0))
puts("");
if(vis[a%b]>=0){
if(!(t==49||(t>49&&(t+1)%50==0)))
puts("");
printf("The last %d digits repeat forever.\n",cnt-vis[a%b]);
return ;
}
vis[a%b]=cnt++;
a=a%b*10;
if(a==0){
if(!(t==49||(t>49&&(t+1)%50==0)))
puts("");
printf("This expansion terminates.\n");
return ;
}
}
}
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)==2){
if(a==0&&b==0)
break;
solve(a,b);
}
}
poj 1140 Expanding Fractions 除法模拟
最新推荐文章于 2023-06-13 15:06:37 发布