这道题是改编题,原题是:http://acm.sdibt.edu.cn:8080/judge/contest/view.action?cid=394#problem/E

网上关于此题的代码和解释非常多,各种思路,我就不解释了,下面是我的做法,供参考~

#include <stdio.h>
int n;
long k;
void spa()
{   int ln=1;
	if(k<0)
		k=-k;
	while(ln*(ln+1)/2<k)
		ln++;
    while((ln*(ln+1)/2-k)%2!=0||(ln*(ln+1)/2-k)/2>2*ln-1)
        ln++;
     n=ln;
}
int main()
{
  while(scanf("%ld",&k)!=EOF)
 {
	 spa();
	 printf("%d\n",n);
  }
  return 0;
}

发表评论

电子邮件地址不会被公开。

Post Navigation