返回顶部

硬币翻转

#include <bits/stdc++.h>
using namespace std;
const int maxn = 101;
bool a[maxn]={0};
int main(){
	int n;
	cin>>n;
	cout<<n<<endl;
	for (int i=0;i<n;i++){
		for (int j=0;j<n;j++){
			if (i!=j){
				if (a[j]) a[j]=0; // 开关模型
				else a[j]=1;
			}
			cout<<a[j];
		}
		cout<<endl;
	}
	return 0;
} 

依题意得:只有在正对角线上的数字不翻,其他就翻。且最小步骤永远为n。

提交记录

posted @ 2022-01-20 15:11  zrc4889  阅读(51)  评论(0编辑  收藏  举报