您的位置:首页 > 其它

UVa 10161

2012-01-18 21:20 316 查看
我是用笨方法做的,首先找出该值的范围,然后分奇数偶数讨论。

#include "stdio.h"
#include "math.h"

int main()
{
int n;
int temp;

while(scanf("%d",&n)==1&&n)
{
temp=(int)pow(n,0.5);

if(temp*temp==n)
{
if(temp%2==0)
printf("%d 1\n",temp);
else
printf("1 %d\n",temp);
continue;
}

if(temp%2==0)
{
if(n-temp*temp<=temp+1)
printf("%d %d\n",temp+1,n-temp*temp);
else
printf("%d %d\n",(temp+1)*(temp+1)-n+1,temp+1);
}
else
{
if(n-temp*temp<=temp+1)
printf("%d %d\n",n-temp*temp,temp+1);
else
printf("%d %d\n",temp+1,(temp+1)*(temp+1)-n+1);
}

}

return 0;
}

只要是知道排数的规则,用这个方法再加上细心一点就可以搞定了……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: