solution.cpp 633 字节
Newer Older
每日一练社区's avatar
每日一练社区 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
#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;
}