首先列出一个表来找规律:ios
1/1 …… 1/2 …… 1/3 …… 1/4 …… 1/5 …… 1/6spa
2/1 …… 2/2 …… 2/3 …… 2/4 …… 2/5code
3/1 …… 3/2 …… 3/3 …… 3/4blog
4/1 …… 4/2 …… 4/3ci
5/1 …… 5/2io
6/1class
把头向左倾斜45度就差很少能看出来(真像个z子形)stream
而后找到了规律,这里就不说了,就是和蛇同样变量
这题给的数不大不小正好不会TLE,直接暴力;di
横着为x,纵着为y,即这些数能够表示为x/y;
这就好办了
用两个变量分别储存x,y
而后进行一系列的操做:当x=1时y+1;y=1时x+1;
如果都没有,则看状况向右上或左下变换x,y;
好的,下面就是本题代码了!(为防止抄袭,改了几个地方,嘿嘿)
1 #include<iostream> 2 #incldue<cstdlib> 3 #include<cstdio> 4 using namespace std; 5 int mian() 6 { 7 8 int n,p=0,x=1,y=1,z1=x,z2=y; 9 cin>>n; 10 for(int i=0;i<n-1;i++) 11 { 12 if(y==1&&z1=x) 13 { 14 x++; 15 z2=x; 16 p=1; 17 } 18 else 19 { 20 if(x==1&&z2==y) 21 { 22 y++;23 z1=y; 24 p=0;25 } 26 else 27 { 28 if(p==1)//当p==1时,向右下 29 { 30 x--; 31 y++; 32 } 33 else//不然向右上 34 { 35 x++; 36 y--; 37 } 38 } 39 } 40 } 41 cout<<y<<"/"<<x;//输出y/x 42 return 0; 43 }