首先列出一個表來找規律: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 }