关于一个变量写错我检查了2小时这件事
查看原帖
关于一个变量写错我检查了2小时这件事
521283
wangif424楼主2022/8/4 00:00
#include<bits/stdc++.h>
using namespace std;
int n,h,k;
string t[2]={"/\\","/__\\"};
void put2(int i){
	//1层 
	if(i&1){
		cout << t[0];
	}else{
		cout << t[1];
	}
	if(i<3)return;
	//2
/*	if(i%4==3){
		cout << "  " << t[0];
	}else if(i%4==0){
		cout << t[1];
	}
	if(i<5)return;*/
	return;
}
void put3(int i){
	k=i%8;
	if(k==5){
		cout << "      ";put2(i);
	}else if(k==6){
		cout << "    ";put2(i);
	}else if(k==7){
		cout << "  ";put2(i);
	}else if(k==0)put2(i);
	return;
}
void put4(int i){
	int k=i%16;
	if(k>8||k==0){
		int x=32-k*2;
		while(x--&&k)cout << " ";
		put2(i);
		put3(i);
			
	}	
	return;
}
void put5(int i){
	int k=i%32;
	if(k>16 || k==0){
		int x=64-k*2;
		while(k&&x--)cout << " ";
		put2(i);
		put3(i);
		put4(i);
	}
}
void put(int i,int m){
	//cout << i << " " << m << " ";
	if(m<2){
		put2(i);
	//	put3(i);
	//	put4(i);
	//	put5(i);
	//	cout << "r";
		return ;
	}
	int d=1<<m;
	int k=i%d;
	if(k>(d/2)||k==0){
		int x=(d-k)<<1;
		while(x-- && k!=0){
			cout << " ";
		}
		for(int j=1;j<=m-1;j++){
		//	cout << "d" << i << " " << j << " ";
			put(i,j);
		}
	}
//	cout << "r";
	return;
}
int main(){
	cin >> n;
	h=1<<n;
	for(int i=1;i<=h;i++){
		for(int j=1;j<=h-i;j++)cout << " ";
		for(int j=1;j<=n;j++){
			put(i,j);
		}
	/*	put2(i);
		put3(i);
		put4(i);
		put5(i);*/
		cout << endl;
	}
	
	return 0;
}

65行的k=i%d写成k=i%m,查错查了我2小时

2022/8/4 00:00
加载中...