#include <stdio.h> #include <math.h> int main() { int map[50][50]; int i, j, cnt = 1; int nowi, nowj; for (i = 1; i <= 40; i++) { if (i & 1) { //若为奇数轮的时候,是从左下角到右上角 nowi = i, nowj = 1; for (j = 0; j < i; j++) map[nowi - j][nowj + j] = cnt++; } else { //若为偶数轮的时候,是从右上角到左下角 nowi = 1, nowj = i; for (j = 0; j < i; j++) map[nowi + j][nowj - j] = cnt++; } } printf("%d", map[20][20]); //答案:761 return 0; }