提交时间:2024-08-20 22:49:46
运行 ID: 173651
#include <iostream> #include <bits/stdc++.h> using namespace std; char mapp[800][800]; //璁板綍鍥惧舰 void solve(int n,int x,int y) { if(n==1) { mapp[x][y]='X'; } else { int sizee=pow(3.0,n-2); solve(n-1,x,y); //閫掑綊 solve(n-1,x+sizee*2,y); solve(n-1,x+sizee,y+sizee); solve(n-1,x,y+sizee*2); solve(n-1,x+sizee*2,y+sizee*2); } } int main() { int n; while(cin>>n) { if(n==-1) break; int m=pow(3.0,n-1); //m涓哄浘褰㈠ぇ灏? for(int i=0;i<m;i++) { for(int j=0;j<m;j++) mapp[i][j]=' '; //鍒濆鍖? } for(int i=0;i<m;i++) { mapp[i][m]='\0'; } solve(n,0,0); for(int i=0;i<m;i++) { for(int j=m-1;j>=0;j--) { if(mapp[i][j]=='X') //鑻ヤ负X鍒欒琛岄亶鍘嗙粨鏉? break; else if(mapp[i][j]!='X') //鑻ラ潪X鍒欒祴涓?\0' mapp[i][j]='\0'; } } for(int i=0;i<m;i++) printf("%s\n",mapp[i]); printf("-\n"); } return 0; }