简单题,感觉像重温小学时候做除法的时候打草稿的感觉……小心些就好了,下面贴代码作纪念。

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 }

 

posted on 2012-08-06 16:59  醉春雨  阅读(153)  评论(0)    收藏  举报