hrbust 2291

分形的题目,想了半天没想出来。。

思路错了,一直纠结于什么时候换行。。

代码如下:

#include
#include
#include
#include
#include
using namespace std;
char a[2500][2500];
void dfs(int dep,int x,int y)
{
    if(dep==0) {
        a[x][y]='C';
        return ;
    }
    int s=(int)pow(3.0,dep-1);
    dfs(dep-1,x,y+s);
    dfs(dep-1,x,y+2*s);
    dfs(dep-1,x+s,y);
    dfs(dep-1,x+2*s,y+s);
    dfs(dep-1,x+2*s,y+2*s);
}
int main()
{
    int t;
    scanf("%d",&t);
    while(t--) {
        int n;
        scanf("%d",&n);
        memset(a,' ',sizeof(a));
        dfs(n,0,0);
        int s=(int)pow(3.0,n);
        for(int i=0;i=0;j--) {
            if(a[i][j]=='C') {
                a[i][j+1]='\0';
                break;
            }
        }
        for(int i=0;i


你可能感兴趣的:(dfs)