打印X图

来源:互联网 发布:血小板计数算法 编辑:程序博客网 时间:2024/06/05 16:22

 

#include <iostream> 

#include <algorithm> 

#include <cmath> 

#include <cstring>

using namespace std;

char a[800][800]; 

void fen(int n,int x,int y) 

   int k; 

   if(n==1)  {  a[x][y]='X'; return ; } 

       k=pow(3,n-2); 

       fen(n-1,x-k,y-k); 

       fen(n-1,x+k,y-k); 

       fen(n-1,x,y); 

       fen(n-1,x-k,y+k); 

       fen(n-1,x+k,y+k); 

int main() 

   int n; 

   while((cin>>n)) 

   { 

       if(n==-1)  break; 

       memset(a,' ',sizeof(a)); 

        int x,y,k=0; 

       int b[10]={0,2,8,26,80,242,728}; 

           k=b[n-1]; 

           x=y=b[n-1]/2; 

           fen(n,x,y); 

           for(int i=0;i<=k;i++) 

           { 

                for(int j=0;j<=k;j++) 

                {

                         cout<<a[i][j];

                                     }   

           cout<<endl; 

                            } 

           cout<<"-"<<endl;

   } 

   return 0; 

}


原创粉丝点击