只有两个ac,有大佬看下是哪里错误吗

P1320 压缩技术(续集版)

povej @ 2022-03-02 21:35:58

#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
    int temp = 1;
    scanf("%s",a);
    int n = strlen(a);
    int i;/*
    for(i=n;i<n*n;i++){
        scanf("%c",&a[i]); 
    }*/
    for(i=n;i<n*n;i++){
        scanf("%c",&a[i]);
        if(a[i]!='0'&&a[i]!='1') i--;
    }
    printf("%d",n);
    for(int j=1;j<n*n;j++){
        if(a[j]==a[j-1]) temp++;
        else{
            printf(" %d",temp);
            temp = 1;
        }
        if(j==(n*n-1)) printf(" %d",temp);
    }
    return 0;
}

by povej @ 2022-03-02 21:56:17

修改后通过了,第一个若是1的时候需要先输出0,还是没仔细审题

#include<stdio.h>
#include<math.h>
#include<string.h>
/*int check(int x){
    for(int i=2;i<=(int)sqrt(x);i++){
        if(x%i==0)  return 0;
    }
    return 1;
}
int change(int x){
    int temp =1;
    for(int i=1;i<x;i++){
        temp*=10;
    }
    return temp;
}*/
char a[1000000];
int main()
{
    int temp = 1;
    scanf("%s",a);
    int n = strlen(a);
    int i;/*
    for(i=n;i<n*n;i++){
        scanf("%c",&a[i]); 
    }*/
    for(i=n;i<n*n;i++){
        scanf("%c",&a[i]);
        if(a[i]!='0'&&a[i]!='1') i--;
    }
    printf("%d",n);
    if(a[0]=='1'){
        printf(" 0");
    }
    for(int j=1;j<n*n;j++){
        if(a[j]==a[j-1]) temp++;
        else{
            printf(" %d",temp);
            temp = 1;
        }
        if(j==(n*n-1)) printf(" %d",temp);
    }
    return 0;
}

|