题目:http://poj.org/problem?id=2083
题意:递归把分形图输出出来,显然面积是3^n-1*3^n-1
//#include<bits/stdc++.h>
#include<stdio.h>
#include<string.h>
#include<math.h>
//using namespace std;
char mp[731][731];
void dfs(int n,int x,int y){
if(n==1){
mp[x][y]='X';
return ;
}
int size=pow(3,n-2);
dfs(n-1,x,y);
dfs(n-1,x,y+2*size);
dfs(n-1,x+2*size,y);
dfs(n-1,x+2*size,y+2*size);
dfs(n-1,x+size,y+size);
}
int main(){
int n,size;
while(scanf("%d",&n)!=EOF){
if(n==-1)
break;
memset(mp,' ',sizeof(mp));
size=pow(3,n-1);
dfs(n,1,1);
for(int i=1;i<=size;i++){
mp[i][size+1]='\0';
//puts(mp[i]);
printf("%s\n",mp[i]+1);
}
printf("-\n");
}
return 0;
}