uvaoj10161

uvaoj10161




    这类题就是找规律,数学类的题,不适合浪费空间,而是找规律,找计算的公式。

       本题提看到图就知道它是怎么走的,相当于一环一环的走(四分之一环),重要的是找到对角线特点,同坐对角线的坐标比较好找 该找的位置。(注意它给你坐标方向的特点 行是从上到下 变小,列从左到右变大)



      

#include<stdio.h>
#include<math.h>
int main()
{
	int  ans;

	int row;
	int x,y,res;
	while(scanf("%d",&ans))
	{
		if(ans==0)break;
		row = sqrt(ans);
		if( row*row < ans )
		row ++;
        x = row;
		y = row;
		res = row*row - row+1;
		

		if(row%2==0)
		{
			while(ans > res)
			{y--;res++;}
			while(ans < res)
			{x--;res--;}
		}
		else 
		{
			while(ans > res )
			{x--;res++;}
			while( ans< res)
			{y--;res--;}
		}

		printf("%d %d\n",x,y);


	
	}
	return 0;
}

你可能感兴趣的:(c,ACM,数学类)