萌新刚学递归 #10错误 求助
  • 板块P5461 赦免战俘
  • 楼主niruri
  • 当前回复5
  • 已保存回复5
  • 发布时间2021/11/3 21:49
  • 上次更新2023/11/4 01:29:12
查看原帖
萌新刚学递归 #10错误 求助
574658
niruri楼主2021/11/3 21:49

RT,前面9个点都能过- -萌新第一次写递归 99孩子

#include <iostream>
//P5461 
#include <cmath>
using namespace std;
int legth=1;
const int maxn=1080;
bool s[maxn][maxn]={1};
bool doit(int x,int a,int b){
	if(x==2){
		s[a][b]=0;//2x2矩阵 只能把左上变为0 
		return true;
	}
	for(int i=a;i<x/2+a;i++){
		for(int j=b;j<b+x/2;j++){
			s[i][j]=0;
		}
	}
	doit(x/2,a,b+x/2);//左下矩阵
	doit(x/2,x/2+a,b);//右上 
	doit(x/2,x/2+a,x/2+b);//右下 
	
}
int main(){
	int n;
	cin>>n;
	legth=pow(2,n); 
	for(int i=0;i<=legth;i++){
		for(int j=0;j<=legth;j++){
			s[i][j]=1;
		}
	}
	doit(legth,0,0);
for(int i=0; i<legth; i++){
	for(int j=0; j<legth-1; j++){ 
		cout<<s[i][j]<<" ";
	}
	cout<<s[i][legth]<<endl;//属实想不到怎么输出- -dalao的方案真好啊 最后单独输出一次 
	}
	return 0; 
}
2021/11/3 21:49
加载中...