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;
}