NYOJ 330 一个简单的数学题

 1 #include<iostream>
 2 #include<memory.h>
 3 using namespace std;
 4 char a[100010];
 5 bool b[100010];
 6 void fn(int n)
 7 {
 8     memset(b,false,sizeof(b));
 9     if(n == 1) cout<<1<<endl;
10     else
11     {
12         a[0] = '0'; a[1] = '.';    b[1] = true;
13         int carry = 1;
14         int j = 1, k = 2;
15         while(carry)
16         {
17             carry *= 10;
18             a[k++] = carry / n + '0';
19             carry = carry % n;
20             if(b[carry]) break;
21             b[carry] = true;            
22         }
23         a[k] = '\0';
24         cout<<a<<endl;
25     }
26 }
27 
28 int main()
29 {
30     int n,t;
31     cin>>t;
32     while(t--)
33     {
34         cin>>n;
35         if(n<0){n = -n;    cout<<"-";}
36         fn(n);
37     }
38     return 0;
39 }
原文地址:https://www.cnblogs.com/yaling/p/3032023.html