Title: Description
Consider
the natural numbers from 1 to N. By associating to each number a sign
(+ or -) and calculating the value of this expression we obtain a sum
S. The problem is to determine for a given sum S the minimum number N
for which we can obtain S by associating signs for all numbers between
1 to N.
For a given S, find out the minimum value N in order to obtain S according to the conditions of the problem.
Input
The only line contains in the first line a positive integer S (0< S <= 100000) which represents the sum to be obtained.
Output
The output will contain the minimum number N for which the sum S can be obtained.
Sample Input
12
Sample Output
7
Hint
The sum 12 can be obtained from at least 7 terms in the following way: 12 = -1+2+3+4+5+6-7.
Realization:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int sum, input, output;
sum = 0;
output = 1;
scanf("%d", &input);
while(sum < input || ((sum - input)%2 == 1))
{
sum += output;
output ++;
}
printf("%d\n", output - 1);
getch();
return 0;
}
comment:
如果输入的整数为S, sum = 1 + 2 + 3 + ... + N , 当sum > S 时,令sum - S = 2p ,p属于1-----N中的某一个,令p为-p
则sum1 = 1 + 2 + ... -p +... + N = sum - 2*p = S,因此我们只要满足这些条件就可以求得我们要求得解.