poj 2083 分形

来源:互联网 发布:淘宝烈士墙是什么意思 编辑:程序博客网 时间:2024/05/16 13:45
Fractal
Time Limit: 1000MS Memory Limit: 30000KTotal Submissions: 6514 Accepted: 3226

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 box fractal is defined as below :
  • A box fractal of degree 1 is simply
    X
  • A box fractal of degree 2 is
    X X
    X
    X X
  • If using B(n - 1) to represent the box fractal of degree n - 1, then a box fractal of degree n is defined recursively as following
    B(n - 1)        B(n - 1)        B(n - 1)B(n - 1)        B(n - 1)

Your task is to draw a box fractal of degree n.

Input

The input consists of several test cases. Each line of the input contains a positive integer n which is no greater than 7. The last line of input is a negative integer −1 indicating the end of input.

Output

For each test case, output the box fractal using the 'X' notation. Please notice that 'X' is an uppercase letter. Print a line with only a single dash after each test case.

Sample Input

1234-1

Sample Output

X-X X XX X-X X   X X X     XX X   X X   X X    X   X XX X   X X X     XX X   X X-X X   X X         X X   X X X     X           X     XX X   X X         X X   X X   X X               X X    X                 X   X X               X XX X   X X         X X   X X X     X           X     XX 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 XX X   X X         X X   X X X     X           X     XX X   X X         X X   X X   X X               X X    X                 X   X X               X XX X   X X         X X   X X X     X           X     XX X   X X         X X   X X-

Source

Shanghai 2004 Preliminary
 
(从discuss里copy的代码)
#include <stdio.h>#include <math.h>int main(){int n;while(scanf("%d",&n)&&n--!=-1){for(int i=0;i<pow(3.0,n);i++){for(int j=0;j<pow(3.0,n);j++){int ii=i;int jj=j;int k;for(k=0;k<n&&(ii%3+jj%3)%2==0;){ii/=3;jj/=3;k++;}printf("%c",32+56*(k==n));}printf("\n");}printf("-\n");} }