uva 10025 The ? 1 ? 2 ? ... ? n = k problem

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <iostream>
 4 #include <algorithm>
 5 #define ll long long
 6 using namespace std;
 7  
 8 int t;
 9  
10 int main()
11 {
12     scanf("%d",&t);
13     while(t--)
14     {
15         ll k;
16         cin>>k;
17         if(k<0) k=-k;
18         if(k==0)
19         {
20             printf("3\n");
21         }
22         else
23         {
24             int i=0;
25             ll sum=0;
26             for(i=1; ; i++)
27             {
28                 sum+=i;
29                 if(sum>=k) break;
30             }
31             if((sum-k)%2==0)
32             {
33                 printf("%d\n",i);
34             }
35             else
36             {
37                 for(int j=i+1; ; j++)
38                 {
39                     sum+=j;
40                     if((sum-k)%2==0)
41                     {
42                         printf("%d\n",j);
43                         break;
44                     }
45                 }
46             }
47         }
48         if(t!=0) printf("\n");
49     }
50     return 0;
51 }
52  
53  
View Code

 

posted @ 2014-10-12 17:58  null1019  阅读(168)  评论(0编辑  收藏  举报