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

打印十字图

时间:2019-01-24 19:29:24      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:窗口   边框   src   形式   image   abs   hog   break   电脑   

问题描述

小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:

技术分享图片

对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数。

输入格式
一个正整数 n (n<30) 表示要求打印图形的层数。
输出格式
对应包围层数的该标志。
样例输入1
1
样例输出1
技术分享图片

 

样例输入2
3
样例输出2
技术分享图片

 

提示
请仔细观察样例,尤其要注意句点的数量和输出位置。
 
#include <iostream>
#include <cstdio>
#include <stdio.h>
#include <vector>
#include <algorithm>
#include <stdlib.h>
#include <string.h>
#include <cmath>
#include <string>
#include <fstream>
using namespace std;
int hoge(int x,int y,int n){
    if(x == 2*(n+1) && y <=2*n)//第一排 
        return 1;
    else if(x == 2*n+1 && y == 2*n)//第二排 
        return 1;
    else if(x < 2*n && y== 2*(n+1)) //四周边框 
        return 1;
    else if(x ==0 && y==0)//图形中心 
        return 1;
    else if(x==2*n && (y==2*(n+1)||y==2*(n+1)-1||y==2*(n+1)-2))//第三排 
        return 1;
    return 0;
}
int main(){
    int n;
    cin>>n;
    int x = 2*(n+1);//x
    for(int i=0;i<4*n+5;i++){
        for(int j=0;j<4*n+5;j++){
            int k;
            for(k = 0;k<=n;k++)
                if(hoge(abs(x-i),abs(x-j),k)==1){
                    cout<<$;
                    break;
                }
            if(k == n+1)
                cout<<.;
        }
        cout<<endl;
    }
    return 0;
}

 

打印十字图

标签:窗口   边框   src   形式   image   abs   hog   break   电脑   

原文地址:https://www.cnblogs.com/woxiaosade/p/10316348.html

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