Ray's playground

 

POJ 1012

code
 1 #include <iostream>
 2 #include <vector>
 3 using namespace std;
 4 
 5 bool test(int k ,int m)
 6 {
 7     int i, j=0;
 8     int n = 2 * k;
 9     for(i=0; i<k; i++)
10     {
11         //f(i+1) = (f(i) + m-1) % (n-i)
12         j=(j+m-1% (n-i);
13 
14         if(j < k)
15         {
16             return false;
17         }
18     }
19 
20     return true;
21 }
22 
23 int main()
24 {
25     int k;
26     int i;
27     int x[13];
28     for(k=1; k<14; k++)
29     {
30         i = k+1;
31         while(true)
32         {
33             if(test(k, i))
34             {
35                 x[k-1= i;
36                 break;
37             }
38 
39             if(test(k, i+1))
40             {
41                 x[k-1= i+1;
42                 break;
43             }
44 
45             i += (k+1);
46         }
47     }
48 
49     while(cin >> k, k)
50     {
51         cout << x[k-1<< endl;
52     }
53 }

 

posted on 2010-08-16 21:56  Ray Z  阅读(172)  评论(0编辑  收藏  举报

导航