返回题解分享
讨论 / 题解分享/ 帖子详情

蛇形填数(结果填空) - 题解

笨方法,模拟坐标的移动

#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 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!