70分代码求助
查看原帖
70分代码求助
1386997
Monazite37楼主2024/7/13 09:18

求助,70分代码
如果第一个数是1的话,如
1001000
0001000
0001111
0001000
0001000
0001000
1111111
能得到正确结果;
但是数据点8(一个80 * 80的输入,开头为10个1)
会输出 80 1 9 ...(后面也是对的)
求大佬帮助!!!

#include<bits/stdc++.h>
using namespace std;

int main()
{   
    char a[200]; cin>>a;
    int n=strlen(a);   //求出n 
    cout<<n<<" ";    //输出n 
    int b[n][n];
	
	for(int i=0;i<n;i++) b[0][i] = a[i]-'0';//把第一行的数据录入b 
    
	for(int i=1;i<n;i++){
    	char c[n]; cin>>c;
    	for(int j=0;j<n;j++) b[i][j] = c[j]-'0';//把第2行到第n行数据录入b 
	}
	
	int x=0,k=0;//x记录有连续多少个,k为0或1 
	
	for(int i=0;i<n*n;i++){
		if(b[i/n][i%n]==k) x++;
		else k = (k+1)%2 , cout<<x<<" " , x=1; 
	}
	
	cout<<x;//输出最后连续的数目 
	return 0; 
}
2024/7/13 09:18
加载中...