Ray's playground

 

POJ 1032

code
 1 #include <iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     int num;
 7     cin >> num;
 8     int t[60= {0};
 9     int sum = 0;
10     int i;
11 
12     for(i=2; sum<=num; i++)
13     {
14         t[i] = i;
15         sum += i;
16     }
17 
18     i--;
19     sum -=i;
20 
21     int diff = num - sum;
22     i--;
23     if(diff == i)
24     {
25         for(int j=3; j<=i; j++)          
26         {
27             cout << t[j] << " ";     
28         }        
29 
30         cout << i+2;
31     }
32 
33     if(diff >= 1 && diff <= (i-1))
34     {
35         int tmp = i;
36 
37         for(int k=diff; k>0; k--)         
38         {
39             t[tmp--]++;         
40         }
41         
42         int s;
43 
44         for(s=2; s<i; s++)
45         {
46             cout << t[s] <<" ";     
47         }
48 
49         cout << t[s];
50     
51     } 
52 
53     if(diff == 0)
54     {
55         int p;
56 
57         for(p=2; p<i;p++)
58         {
59             cout << t[p]<< " ";
60         }
61 
62         cout << t[p];
63     }
64 
65     return 0;
66 }

 

posted on 2010-08-24 21:42  Ray Z  阅读(250)  评论(0编辑  收藏  举报

导航