p1975_递归_good.cpp

来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· C++ 代码 · 共 47 行

CPP
47
字号
#include <stdio.h>
#include <string.h>

char     map [1024] [2048];

void     PutMap ( int x , int y )
{
         map [x] [y + 1] = map [x + 1] [y] = '/';
         map [x] [y + 2] = map [x + 1] [y + 3] = '\\';
         map [x + 1] [y + 1] = map [x + 1] [y + 2] = '_';
}

void     FillMap ( int x , int y , int l )
{
         if ( l == 2 ) { PutMap ( x , y ); return; }
         FillMap ( x , y + l / 2 , l / 2 );
         FillMap ( x + l / 2 , y , l / 2 );
         FillMap ( x + l / 2 , y + l , l / 2 );
}

void     makemap ()
{
         int     l = 1024;
         memset ( map , ' ' , sizeof ( map ));
         FillMap ( 0 , 0 , l );
}

void     PrintMap ( int N )
{
         int      i , j , l = 1 << N;
         for ( i = 0; i < l; i ++ ) {
             for ( j = 0; j <= l + i; j ++ )
                 printf ( "%c" , map [1024 - l + i] [j] );
             printf ( "\n" );
         }
}

main ()
{
     int N;
     makemap ();
     while ( scanf ( "%d" , &N ) , N ) {
           PrintMap ( N );
           printf ( "\n" );
     }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?