笨方法,模拟坐标的移动
#include <bits/stdc++.h>
using namespace std;
int posx = 1,posy = 2;
int a[300][300];
int main(){
a[1][1] = 1;
a[posx][posy] = 2;
int flag = 0;
for (int i = 2; i < 50;++i) {
if (flag == 0) {
for (int j = 1; j < i; ++j) {
posx = posx + 1;
posy = posy - 1;
a[posx][posy] = a[posx - 1][posy + 1] + 1;
}
flag = 1;
posx += 1;
a[posx][posy] = a[posx - 1][posy] + 1;
continue;
}
if (flag == 1){
for (int j = 1; j < i; ++j) {
posx = posx - 1;
posy = posy + 1;
a[posx][posy] = a[posx + 1][posy - 1] + 1;
}
flag = 0;
posy += 1;
a[posx][posy] = a[posx][posy - 1] + 1;
continue;
}
}
cout << a[20][20];
return 0;
}
0 回复
0 转发
3 喜欢
1 阅读



