标签:
| Time Limit: 1000MS | Memory Limit: 30000KB | 64bit IO Format: %I64d & %I64u |
Description
B(n - 1) B(n - 1) B(n - 1) B(n - 1) B(n - 1)
Input
Output
Sample Input
1 2 3 4 -1
Sample Output
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
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 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 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
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 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 X X X X X X
分治法画图
代码:
#include<iostream> #include<cstring> #include<cstdio> #include<map> #include<cstring> #include<algorithm> #define mem(a,b) memset(a,b,_sizeof(a)) using namespace std; typedef long long ll; typedef unsigned long long llu; const int maxd=1000+10; //--------------------- int n; char mz[maxd][maxd]; int _size[8]; void init(int len) { for(int i=0; i<len; ++i) { for(int j=0; j<len; ++j) mz[i][j]=' '; mz[i][len]='\0'; } } void draw(int n,int x,int y) { if(n==1) mz[x][y]='X'; else { draw(n-1,x,y); draw(n-1,x,y+_size[n-1]*2); draw(n-1,x+_size[n-1],y+_size[n-1]); draw(n-1,x+_size[n-1]*2,y); draw(n-1,x+_size[n-1]*2,y+_size[n-1]*2); } return; } int main() { freopen("1.txt","r",stdin); _size[0]=0; _size[1]=1; for(int i=2; i<=9; ++i) _size[i]=_size[i-1]*3; while(scanf("%d",&n)==1 && n!=-1) { init(_size[n]); draw(n,0,0); for(int i=0; i<_size[n]; ++i) { for(int j=0; j<_size[n]; ++j) printf("%c",mz[i][j]); printf("\n"); } printf("-\n"); } return 0; }
| Time Limit: 1000MS | Memory Limit: 32768KB | 64bit IO Format: %I64d & %I64u |
Description
A fractal is an object or quantity that displays self-similarity, in a somewhat technical sense, on all scales. The object need not exhibit exactly the same structure at all scales, but the same "type" of structures must appear on all scales.
A Sierpinski fractal is defined as below:
Your task is to draw a Sierpinski fractal of degree n.
Input
Output
Sample Input
Sample Output
#include<iostream>
#include<cstring>
#include<cstdio>
#include<map>
#include<cstring>
#include<algorithm>
#define mem(a,b) memset(a,b,_sizeof(a))
using namespace std;
typedef long long ll;
typedef unsigned long long llu;
const int maxd=2000+10;
//---------------------
int n;
char mz[maxd][maxd];
int _size[12];
void init(int len)
{
for(int i=0; i<len; ++i)
{
for(int j=0; j<len; ++j)
mz[i][j]=' ';
mz[i][len]='\0';
}
}
void draw(int n,int x,int y)
{
if(n==1)
mz[x][y]='@';
else
{
draw(n-1,x,y);
draw(n-1,x+_size[n-1],y);
draw(n-1,x+_size[n-1],y+_size[n-1]);
}
return;
}
int main()
{
freopen("1.txt","r",stdin);
_size[0]=0;
_size[1]=1;
for(int i=2; i<=12; ++i)
_size[i]=_size[i-1]*2;
while(scanf("%d",&n)==1 && n)
{
init(_size[n]);
draw(n,0,0);
for(int i=0; i<_size[n]; ++i)
{
for(int j=_size[n]-1; j>=0; --j)
if(mz[i][j]=='@') {mz[i][j+1]='\0';break;}
puts(mz[i]);
}
printf("\n");
}
return 0;
}
标签:
原文地址:http://blog.csdn.net/whoisvip/article/details/46128837