待解决的一个语法问题
#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