zoukankan      html  css  js  c++  java
  • 九度oj 题目1345:XXX定律之画X

    题目描述:

    给你一个n,然后让你输出F(n)
    规则是这样的,F(n)的输出结果是:
    F(n-1)     F(n-1)
          F(n-1)
    F(n-1)      F(n-1)
    F(1)的输出结果是:X
    那么根据规则F(2)的输出结果应该是:
    X X
     X 
    X X

    输入:

    题目有多组输入,每组输入一个n(n<=7)。
    当输入零或负数的时候结束输入。

    输出:

    对每组输入输出相应的F(n),每组输出最后一行是‘#’。

    样例输入:
    1
    2
    3
    -1
    样例输出:
    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
    #

    这道题有点意思,代码如下
     1 #include <cstdio>
     2 #include <cstdlib>
     3 #include <cstring>
     4 #include <iostream>
     5 using namespace std;
     6 
     7 char mat[800][800];
     8 int len[] = {0,1,3,9,27,81,243,729};
     9 void copy(int x, int y, int base) {
    10     for(int i = x, p = 1; i < x + base; i++, p++) {
    11         for(int j = y, q = 1; j < y + base;q++, j++) {
    12             mat[i][j] = mat[p][q];
    13         }
    14     }
    15 }
    16 
    17 void calf() {
    18     mat[1][1] = 'X';
    19     for(int i = 2; i <= 7; i++) {
    20         int base = len[i-1];
    21         copy(base*2+1,1,base);
    22         copy(base+1,base+1,base);
    23         copy(1,base*2+1,base);
    24         copy(base*2+1,base*2+1,base);
    25     }
    26 }
    27 
    28 int n;
    29 int main(int argc, char const *argv[])
    30 {
    31     
    32     memset(mat,' ', sizeof(mat));
    33     calf();
    34     while(scanf("%d",&n) != EOF && n > 0) {
    35         for(int i = 1; i <= len[n]; i++) {
    36             for(int j = 1; j <= len[n]; j++) {
    37                 printf("%c",mat[i][j]);
    38             }
    39             puts("");
    40         }
    41         puts("#");
    42     }
    43 }
  • 相关阅读:
    JAVA处理Clob大对象
    计院生活第二章 深入虎穴(上)
    我的2008
    Quartz入门到精通
    DOM4J使用教程
    JNI简介及实例
    《JavaScript凌厉开发 Ext详解与实践》3月5日开始上架销售
    计院生活第二章 深入虎穴(下)
    Access转Sql Server问题
    提高网站可用性的10个小技巧
  • 原文地址:https://www.cnblogs.com/jasonJie/p/5787198.html
Copyright © 2011-2022 走看看