题目描述:
题目类型:数学题,考察思维,因为是线性组合,所以k正负对称,预处理取绝对值即可。因为要求最小的数字数量,全部取正值累加。直至总和与k的差值可通过调整某一项的正负来中和(即差值为偶数)。
做题经验:注意边界数据。
代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int Case, k;
scanf("%d", &Case);
while(Case--)
{
scanf("%d", &k);
k = k>0?k:-k;
int sum = 1;
int i = 1;
while(sum<k||(sum - k)%2!=0)
{
i++;
sum+=i;
}
printf("%d\n", i);
if(Case)
printf("\n");
}
}