题目大意:给出步数,判断位置。位置图如下
类似于蛇形前进。
解题过程:一次AC
正确代码:
# include <cstdio>
# include <cstdlib>
# include <ctime>
# include <cmath>
# include <iostream>
# include <fstream>
# include <cstring>
# include <string>
//*
#define fin cin
#define fout cout
//*/
using namespace std;
/*
ifstream fin("in.txt");
ofstream fout("out.txt");
//*/
int main()
{
int n;
fin>>n;
int lay,pos;
while(n!=0){
lay=sqrt((double)n);
pos=n-lay*lay;
if(pos>0){
lay++;
// fout<<"层数为:"<<lay<<" 位置为:"<<pos<<endl;
if(lay%2){
if(pos<=lay) fout<<lay<<" "<<pos<<endl;
else fout<<2*lay-pos<<" "<<lay<<endl;
}
else{
if(pos<=lay) fout<<pos<<" "<<lay<<endl;
else fout<<lay<<" "<<2*pos-lay<<endl;
}
}
else{
// fout<<"层数为:"<<lay<<" 位置为:"<<pos<<endl;
if(lay%2){
fout<<1<<" "<<lay<<endl;
}
else fout<<lay<<" "<<1<<endl;
}
fin>>n;
}
return 0;
}