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 }
  • 相关阅读:
    inotifywait实时监控文件目录
    centos7支持xming
    ssh目录权限说明
    利用xinetd实现简单web服务器
    python3 使用http.server秒速搭建web服务器
    linux FFMPEG 摄像头采集数据推流
    Linux nginx+rtmp服务器配置实现直播点播
    Nginx中加入nginx-rtmp-module
    ubuntu查看屏幕分辨率
    运用设计原则编写可测试性的代码
  • 原文地址:https://www.cnblogs.com/jasonJie/p/5787198.html
Copyright © 2011-2022 走看看