uva--10161--Ant on a Chessboard

来源:互联网 发布:用excel预测数据 编辑:程序博客网 时间:2024/06/04 18:42

这是一道简单的数学问题,不过要花点时间找下规律。

我的思路是:对每个基本图形都找3个点的坐标与时间的关系,然后其它的点由这3个点分类讨论出结果

代码如下:

#include<iostream>#include<cmath>using namespace std;int main(){    int N,x,y,a,b,i,Sn,n;    while(cin>>N&&N)    {         double m=N;         n=(sqrt((double)m)-1)/2;          Sn=4*n*n+4*n+1;         a=4*n*n+6*n+3;         b=4*n*n+10*n+7;         if(Sn==N)         {            y=2*n+1;            x=1;         }         else if(N<=a)         {            x=2*n+2-(a-N);            y=2*n+2;         }          else if((4*n*n+8*n+4)>=N)         {              x=2*n+2;              y=1+(4*n*n+8*n+4-N);         }         else if(N<=b)         {              x=2*n+2+1;              y=2*n+3-(b-N);         }         else         {            x=2*n+3+(b-N);            y=2*n+3;         }         cout<<x<<" "<<y<<endl;    }  return 0;}


1 0
原创粉丝点击