代码
输入压缩码的时候需要注意:先获取第一个数即为n,后面数通过其和等于n平方时终止输入。然后就是先将字符数组初始化为‘0’,只需要将连续为1的元素赋值就好了;这里我用的是一位数组,这样赋值的时候比较方便,只需要在最后输出的时候进行换行处理就可以了。
#include<bits/stdc++.h>
using namespace std;
int main(){
int i,a[200],n,j=0,k,cnt=0,u=0;
char s[40000];
memset(s,'0',sizeof(s));
cin>>n;
while(cnt<n*n){
cin>>a[u];
cnt+=a[u];
u++;
}
for(i=0;i<u;i++){
if(i%2!=0){
for(k=0;k<a[i];k++)
s[j++]='1';
}else{
j+=a[i];
}
}
for(i=0;i<n*n;i++){
cout<<s[i];
if(i%n==n-1) cout<<endl;
}
return 0;
}