待解决的一个语法问题

#include <bits/stdc++.h>
#define rep(i, l, r) for (int i = l; i <= r; ++i)
using namespace std;
typedef long long ll;

signed main() {
    cin >> N;

    for (int i = sqrt(N);; --i)
        if (N % i == 0) {
            n = i;
            break;
        }

    m = N / n;

    vector<vector<int>> v(m+1);
    for (vector<int> &vi : v) rep(i, 0, n) vi.push_back(-i);
    // vector<vector<int>> v;
    // rep(i, 0, m) {
    //     vector<int> vi;
    //     rep(j, 0, m) vi.push_back(-j);
    //     v.push_back(vi);
    // }
    rep(i, 1, n) rep(j, 1, m) printf("%d%c", v[i][j], j == m ? '\n' : ' ');
    return 0;
}

输入12,预期输出如下

-1 -2 -3 -4
-1 -2 -3 -4
-1 -2 -3 -4

但注释的代码块可以正常运行,而 第17 18行 无法正常运行,输出结果如下:

-1 -2 -3 0
-1 -2 -3 -1
-1 -2 -3 7696128
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务