求看:为什么感觉输出没问题但是WA了啊55

P1319 压缩技术

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


|