全部RE。小数据都对,但是n=18开始就出现非0、1数字。
查看原帖
全部RE。小数据都对,但是n=18开始就出现非0、1数字。
766098
my_stupid_name楼主2022/8/10 10:52

代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    bool a[100];
	int i=1,n,sum,flag;
	cin>>n;
	cout<<n<<endl;
	while(1)
	{
		flag=i;  //标记上一次的起始点 
		sum=0;
		if(accumulate(a,a+n,0)==n)
		{return 0;}
		while(sum!=n-1)
		{
			if(i>=n){i=i-n;}
			a[i]=!a[i];
			sum++;
			i++;
		}
		i=flag+1;  //从上次起始点的下游一个继续开始上述操作 
		for(int j=0;j<n;j++)
		{cout<<a[j];
		}
		cout<<endl;
	}
	return 0;
}

错误示例

18

18

011111111111111191

110000000000000080

000111111111111191

111100000000000080

000001111111111191

111111000000000080

000000011111111191

111111110000000080

000000000111111191

111111111100000080

2022/8/10 10:52
加载中...