2009-03-06 19:24:36來源不明

ACM 275 Expanding Fractions

注意這題與這題並不太相同,存的東西改變!!
不過很相似就對了,用陣列去看餘數是否曾出現過

/***********************************************************/

#include<stdio.h>
#include<stdlib.h>
main()
{
 int n,m;
 while(scanf("%d %d",&n,&m)==2&&m!=0)
  {
   int time=1,flag=0,math[1001]={0};
   /*判斷方式 餘數相同(出現過2次)*/
   printf(".");
   math[n]=1;
   while(1)
    {
     if(time%50==0)
       printf("\n");
      time++;
      printf("%d",n*10/m);
      n=n*10%m;
      if(n==0) {flag=1;break;}
      if(math[n]!=0) break;
       math[n]=time;
    }
    if(flag==0)
     printf("\nThe last %d digits repeat forever.\n",time-math[n]);
    else
     printf("\nThis expansion terminates.\n"); 
  }
 return 0;
}