咕噜咕噜哈里  

这个题目有些类似C语言的倒三角,但是图形比倒三角要复杂,规律比倒三角要难找得多。。。。

(偷了别人的方法)

题目描述:

历届试题 打印十字图 
问题描述
小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:
..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..
对方同时也需要在电脑 dos 窗口中以字符的形式输出该标志,并能任意控制层数。
输入格式
一个正整数 n (n<30) 表示要求打印图形的层数。
输出格式
对应包围层数的该标志。
样例输入 1
1
样例输出
1
..$$$$$..
..$...$..
$$$.$.$$$
$...$...$
$.$$$$$.$
$...$...$
$$$.$.$$$
..$...$..
..$$$$$..
样例输入 2
3
样例输出
2
..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$ $.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..
提示请仔细观察样例,尤其要注意句点的数量和输出位置。

 

 1 #include<iostream>
 2 using namespace std;
 3 
 4 int hoge(int x,int y,int n){
 5     if(x == 2 * (n+1) && y <= 2 * n)  //第一排
 6         return 1;
 7     else if(x == 2 * n + 1 && y == 2 * n)  //第二排
 8         return 1;
 9     else if(x < 2 * n && y == 2 * (n+1))   //四周边框
10         return 1;
11     else if(x == 0 && y == 0)   //图形中心
12         return 1;
13     else if(x == 2 * n && (y == 2 * (n+1) || y == 2 * (n+1) - 1 || y == 2 * (n+1) - 2))    //第三排
14         return 1;
15     return 0;
16 }
17 
18 int main(){
19     int n;
20     cin >> n;
21     int x = 2 * (n+1);
22     for(int i = 0;i < 4 * n + 5;i++){
23         for(int j = 0;j < 4 * n + 5 ;j++){
24             int k;
25             for(k = 0;k <= n; k++)
26                 if(hoge (abs (x-i),abs (x-j), k) ==1){
27                     cout<<"$";
28                     break;
29                 }
30                 if(k == n+1)
31                     cout<<".";
32         }
33         cout<<endl;
34     }
35     return 0;
36 }

 

posted on 2021-07-31 20:42  咕噜咕噜哈里  阅读(28)  评论(0编辑  收藏  举报