zoukankan      html  css  js  c++  java
  • 打印十字图

    问题描述


    Algorithm

    一开始没想到对称,比较可恶,对称之后就是找规律了,这里放上网上找的一张图,题目里面的“图”实在是“不堪入目”。


    AC

     1 #include<iostream>
     2 
     3 using namespace std;
     4 
     5 char m[5+4*30+1][5+4*30+1];
     6 
     7 void draw(int n)
     8 {
     9     for(int i=0;i<5+4*n;i++){
    10         for(int j=0;j<5+4*n;j++){
    11             m[i][j] = '.'; // 初始化为 . 
    12         }
    13     }
    14     int i, j;i = j = 0;
    15     for(i=2;i<(5+4*n+1)/2;i++){
    16         for(j=0;j<=i-3;j+=2){
    17             m[i][j] = '$';
    18         }
    19         if(!(i&1)) // 偶数行 
    20             m[i][j] = m[i][j+1] = m[i][j+2] = '$';
    21     }
    22     // 折叠 对称
    23     for(int i=0;i<(5+4*n+1)/2;i++){
    24         for(int j=0;j<=i;j++){
    25             m[j][i] = m[i][j];
    26         }
    27     }
    28     for(int i=0;i<(5+4*n+1)/2;i++){
    29         for(int j=5+4*n-1,k=0;j>=(5+4*n+1)/2;j--,k++){
    30             m[i][j] = m[i][k];
    31         }
    32     } 
    33     for(int i=(5+4*n-1),k=0;i>=(5+4*n+1)/2;i--,k++){
    34         for(int j=0;j<5+4*n;j++){
    35             m[i][j] = m[k][j];
    36         }
    37     }
    38     
    39     return;
    40 }
    41 
    42 int main()
    43 {
    44     int n = 0;
    45     while(cin>>n)
    46     {
    47         draw(n);
    48         for(int i=0;i<5+4*n;i++){
    49             for(int j=0;j<5+4*n;j++){
    50                 cout<<m[i][j];
    51             }
    52             cout<<endl;
    53         }
    54     }
    55 
    56     return 0;
    57 }
    View Code

    2019-02-02

    17:47:32

  • 相关阅读:
    go语言与区块链
    git+jenkins
    cicd
    devops
    Go 并发
    Thinkphp5-未定义数据库类型
    用golang写爬虫
    kubernetes-通过VMware搭建k8s集群遇到的问题
    亚马逊全球开店2019
    kafka命令大全
  • 原文地址:https://www.cnblogs.com/mabeyTang/p/10348886.html
Copyright © 2011-2022 走看看