码迷,mamicode.com
首页 > 其他好文 > 详细

打印十字图

时间:2019-02-02 19:13:54      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:std   name   clu   http   ima   out   code   isp   names   

问题描述

技术图片

技术图片

技术图片

 


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

打印十字图

标签:std   name   clu   http   ima   out   code   isp   names   

原文地址:https://www.cnblogs.com/mabeyTang/p/10348886.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!