现在A君在左下角,他的初始方向是向右,他要在正方形内走m步
当 A君碰到边界或者已经走过的格子时,他便会逆时针转90°继续走,直到走完m步。 现在给你两个整数n和m,请算出走完m步后A君的坐标。其实是简单的签到题,我居然在一开始就审题错误,然后就没有思路怎么样模拟过程,难道是英文题做多了??
最后看了一下别人的代码,忽然恍然大悟!!
#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>#include <vector>#include <map>using namespace std;int a[1010][1010];int main(){ int n,m; int x=1,y=1; cin>>n>>m; while(m){ while(m>0&&(x+1<=n)&&(!a[x+1][y])){ m--; x++;a[x][y]=1; } while(m>0&&x-1>=1&&(!a[x-1][y])){ m--;x--;a[x][y]=1; } while(m>0&&y+1<=n&&(!a[x][y+1])){ m--;y++;a[x][y]=1; } while(m>0&&y-1>=2&&(!a[x][y-1])){ m--;y--;a[x][y]=1; } } cout<<x<<" "<<y<<endl; return 0;}模拟题需要多写才行。
