正文

pku18442007-08-17 23:39:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/liuwg/28609.html

分享到:

#include<stdio.h>
#include<math.h>
int main()
{
int n,i,sum;
while(scanf("%d",&n)!=EOF)
{
   i=(sqrt(1+8*n)-1)/2;
   sum=(i+1)*i/2;
   while(sum<n) sum+=++i;
   if((sum-n)%2==0) printf("%d\n",i);
   else printf("%d\n",i&1?i+2:i+1);
}
return 0;
}

或者:

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	int s,n,t;
	while(cin>>s)
	{
		n=sqrt(s*2);
		t=(n+1)*n/2;
		if(t<s)
		{
			n++;
			t+=n;
		}
		if((t-s)%2==0)
		{
			cout<<n<<endl;
		}
		else
		{
			if(n%2==0)
	    		cout<<n+1<<endl;
			else
				cout<<n+2<<endl;
		}
	}
	return 0;
}

阅读(2093) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册