题目
分析
一个简单的流程是:
- 读入
n,这决定了为我们的字符矩阵的大小:n*n。 - 准备读入数字。需要注意的是,我们并不知道有几个数字,但可以保证的是,这些数字加起来一定等于
n*n——所以这就是一个循环控制条件。 - 这些数字决定了有几个
0和几个1,并来回切换。我们用一个flag来跟踪之。 - 用一个字符数组(一开始为空),根据
2中的输入和flag不断填充。 - 最后分行输出。
核心代码是:
bool flag = false;
int total = n * n;
while (total > 0)
{
cin >> count;
for (int i = 1; i <= count; i++)
{
output.push_back(flag ? '1' : '0');
}
flag = !flag;
total -= count;
}
答案

思考
在输出时,注意控制分行:
if ((i+1) % n == 0)
{
cout << endl;
}
