zoj1820.cpp
来自「最近在acm.zju.edu.cn上通过的题目的代码」· C++ 代码 · 共 38 行
CPP
38 行
#include <algorithm>
using namespace std;
int num[10010];
int n;
int main(){
while (scanf("%d", &n) != EOF && n != 0){
if ((n * (n + 1)) % 4 != 0){
printf("0\n\n"); continue;
}
printf("%d\n", n);
int i, j, p, k;
for (i = 1; i <= n; i++) num[i] = i;
for (i = 1; i <= n; i++){
for (j = 1; j <= n; j++)
if (num[j] > 0) break;
if (j <= n){
printf("%d ", j);
num[j]--;
p = n - j;
if (p & 1 == 1 && p > 2){
printf("%d ", j + 1);
num[j+1]--;
}
for (k = j + 2; k < n; k++){
printf("%d ", k);
num[k]--;
}
printf("%d\n", n);
num[n]--;
}
}
puts("");
}
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?