简单题,感觉像重温小学时候做除法的时候打草稿的感觉……小心些就好了,下面贴代码作纪念。
View Code
1 /*{ 2 ID:jzy3209981 3 PROG:fracdec 4 LANG:C++ 5 }*/ 6 #include<stdio.h> 7 #include<iostream> 8 #include<string.h> 9 #include<math.h> 10 using namespace std; 11 char fracdec[100000]; 12 int remain; 13 int cycle[100000]; 14 bool state[900000]; 15 int main() 16 { 17 freopen ("fracdec.in","r",stdin); 18 freopen ("fracdec.out","w",stdout); 19 20 int n,d,i=0,j,result; 21 scanf("%d%d",&n,&d); 22 if(n%d==0) 23 printf("%d.0\n",n/d); 24 else 25 { 26 result=n/d; 27 sprintf(fracdec,"%d",result); 28 i=strlen(fracdec); 29 fracdec[i]='.'; 30 i++; 31 remain=n%d; 32 while(state[remain%d]!=1&&remain%d!=0) 33 { 34 state[remain%d]=1; 35 cycle[remain%d]=i; 36 fracdec[i]=remain*10/d+48; 37 i++; 38 remain=remain*10%d; 39 } 40 if(state[remain%d]==1) 41 { 42 int k=0; 43 for(j=0;j<i;j++,k++) 44 { 45 46 if(j==cycle[remain%d]) 47 { 48 printf("("); 49 k++; 50 } 51 if(k%76==0&&k!=0) 52 printf("\n%c",fracdec[j]); 53 else 54 printf("%c",fracdec[j]); 55 } 56 printf(")\n"); 57 } 58 else 59 { 60 for(j=0;j<i;j++) 61 { 62 if(j%76==0&&j!=0) 63 printf("\n%c",fracdec[j]); 64 else 65 printf("%c",fracdec[j]); 66 } 67 printf("\n"); 68 } 69 } 70 return 0; 71 }

浙公网安备 33010602011771号