hrbust 2291

来源:互联网 发布:电陶炉 知乎 编辑:程序博客网 时间:2024/06/16 17:21

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

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

代码如下:

#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>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<s;i++)            for(int j=s-1;j>=0;j--) {            if(a[i][j]=='C') {                a[i][j+1]='\0';                break;            }        }        for(int i=0;i<s;i++){            printf("%s\n",a[i]);        }    }}


原创粉丝点击