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
");
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
",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
",j);
43                         break;
44                     }
45                 }
46             }
47         }
48         if(t!=0) printf("
");
49     }
50     return 0;
51 }
52  
53  
View Code
原文地址:https://www.cnblogs.com/fanminghui/p/4020843.html