刚一看这题觉得很高大上应该做不出来吧但是仔细看了下突然就有灵感了...
感觉跟别人的想法好像不太一样也许是我没看懂别人的程序?所以还是写一下吧...
AC之后想看下别人的其他解法就搜了下发现我竟然漏考虑了k=0的情况...这也能AC!?然后赶紧特判一下k=0...然后又仔细想了下...啊原来自己写的这个程序已经包含这种情况了...
无语了哎,2B了罪过罪过啊...
打了表耗时略长...
好吧突然发现还有个abs()求int型绝对值得...学习了...
#include<stdio.h>
#include<math.h>
#define maxn 45000
int a[maxn];
void table() // 打表
{
int i;
for(i=1;i<=maxn;i++)
a[i]=i*(i+1)/2;
}
int main()
{
int t,i,k;
table();
scanf("%d",&t);
while(t--)
{
scanf("%d",&k);
k=fabs(k);
i=1;
while(a[i]<k)
i++;
while((a[i]-k)%2!=0)
i++;
printf("%d\n",i);
if(t) putchar('\n');
}
return 0;
}