Eabbbb @ 2024-12-24 21:04:52
//所以num[1]是空格而不是输入的第二个数字,num[2]才是
#include <stdio.h>
#include <string.h>
int main()
{
char num[4005];
fgets(num,sizeof(num),stdin);
num[strcspn(num, "\n")] = '\0'; // 去掉末尾的换行符
int i,j,n=num[0]-'0',cnt=0,flag=0,k=2;//flag做标记,0为输出0
//char中的数字要想转换为数字使用需要经过变化
for(i=0;i<n;i++){
for(j=0;j<n;j++){//一次输出一个数字
if(flag==0){
printf("0");
cnt++;
}else{
printf("1");
cnt++;
}
if(cnt==num[k]-'0'){
cnt=0;
k=k+2;
if(flag==0){
flag=1;
}else{
flag=0;
}
}
}
printf("\n");
}
return 0;
}
by Westbrook_ @ 2024-12-29 09:38:53
#include <bits/stdc++.h>
using namespace std;
const int N=1e6+10;
int a[N];
int main(){
int n,sum=0,cnt=0;
cin>>n;
for(int i=1;;i++){
cin>>a[i];sum+=a[i];cnt++;
if(sum==n*n)
break;
}
int noww=0;
for(int i=1;;i++){//i为奇数是0,偶数是1
for(int j=1;j<=a[i];j++){
if(i%2!=0){
cout<<0;
noww++;
}
else if(i%2==0){
cout<<1;
noww++;
}
if(noww%n==0)
cout<<endl;
}
if(i==cnt)
break;
}
}
@Eabbbb