题目描述
设某汉字由 × N×N 的 00 和 11 的点阵图案组成。我们依照以下规则生成压缩码。连续一组数值:从汉字点阵图案的第一行第一个符号开始计算,按书写顺序从左到右,由上至下。第一个数表示连续有几个 00,第二个数表示接下来连续有几个 11,第三个数再接下来连续有几个 00,第四个数接着连续几个 11,以此类推……例如: 以下汉字点阵图案:0001000000100000011110001000000100000010001111111对应的压缩码是: 7 3 1 6 1 6 4 3 1 6 1 6 1 3 77 3 1 6 1 6 4 3 1 6 1 6 1 3 7 (第一个数是 N ,其余各位表示交替表示0和1 的个数,压缩码保证 × =N×N= 交替的各位数之和)输入格式
输入 #1复制
7 3 1 6 1 6 4 3 1 6 1 6 1 3 7
输出 #1复制
0001000
0001000
0001111
0001000
0001000
0001000
1111111
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
StringBuffer sum= new StringBuffer();
int count = 0;
if (n >= 3 && n <= 200) {
while (sum.length() < n * n) {
if (count % 2 == 0) {
int a = scanner.nextInt();
for (int i = 0; i < a; i++) {
sum.append("0");
}
} else {
int b = scanner.nextInt();
for (int i = 0; i < b; i++) {
sum.append("1");
}
}
count++;
}
for (int i = 0; i < n * n; i++) {
if (i % n == 0) {
System.out.print(" ");
System.out.println();
}
System.out.print(sum.charAt(i));
}
}
}
}