-
分型盒
XJOI - 题目ID:9436必做题100分
最新提交:
Memory Limit Exceeded
20 分
历史最高:
Memory Limit Exceeded
20 分时间限制: 1000ms
空间限制: 524288kB
题目描述
【题目描述】
分形,通常被定义为一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状,即具有自相似的性质。它跟分数维、自组织、非线性系统和混沌等具有非常重要的联系。
分形盒就是这样一种分形,它的定义如下:
维度是1的分形盒:
x
维度是2的分形盒:
x x
x
x x
如果已知维度是(n-1)的分形盒,那么维度是n的分形盒的递归定义如下所示:
Box(n-1) Box(n-1)
Box(n-1)
Box(n-1) Box(n-1)
你的任务是画一个维度为n的分形盒。
【输入】
输入一行包含一个正整数n表示分形盒的维度,n不大于7。
【输出】
输出要求维度的分形盒,注意x为小写字母。
【样例输入】
3
【样例输出】
x x x x
x x
x x x x
x x
x
x x
x x x x
x x
x x x x
下面是我的代码:
#include<bits/stdc++.h>
using namespace std;
char a[10005][10005];
void f(int x,int y,int m){
if(m==1){
a[x ][y]='x';
return ;
}
f(x+m/3*2,y,m/3*2);
f(x,y+m/3*2,m/3*2);
f(x+m/3*2,y+m/3*2,m/3*2);
}
int main(){
int n;
cin>>n;
int size=pow(3,n-1);
for(int i=1;i<=size;i++){
for(int j=1;j<=size;j++){
a[i][j]=0;
}
}
f(1,1,size);
for(int i=1;i<=size;i++){
for(int j=1;j<=size;j++){
cout<<a[i][j];
}
cout<<endl;
}
return 0;
}
哪位大佬帮忙看看啊