蓝桥杯 - 打印十字图 (文字图形类)

打印十字图

时间限制:1.0s   内存限制:256.0MB

问题描述

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

..$$$$$$$$$$$$$..

..$...........$..

$$$.$$$$$$$$$.$$$

$...$.......$...$

$.$$$.$$$$$.$$$.$

$.$...$...$...$.$

$.$.$$$.$.$$$.$.$

$.$.$...$...$.$.$

$.$.$.$$$$$.$.$.$

$.$.$...$...$.$.$

$.$.$$$.$.$$$.$.$

$.$...$...$...$.$

$.$$$.$$$$$.$$$.$

$...$.......$...$

$$$.$$$$$$$$$.$$$

..$...........$..

..$$$$$$$$$$$$$..

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

输入格式

一个正整数 n (n<30) 表示要求打印图形的层数。

输出格式

对应包围层数的该标志。

样例输入1

1

样例输出1

..$$$$$..

..$...$..

$$$.$.$$$

$...$...$

$.$$$$$.$

$...$...$

$$$.$.$$$

..$...$..

..$$$$$..

样例输入2

3

样例输出2

..$$$$$$$$$$$$$..

..$...........$..

$$$.$$$$$$$$$.$$$

$...$.......$...$

$.$$$.$$$$$.$$$.$

$.$...$...$...$.$

$.$.$$$.$.$$$.$.$

$.$.$...$...$.$.$

$.$.$.$$$$$.$.$.$

$.$.$...$...$.$.$

$.$.$$$.$.$$$.$.$

$.$...$...$...$.$

$.$$$.$$$$$.$$$.$

$...$.......$...$

$$$.$$$$$$$$$.$$$

..$...........$..

..$$$$$$$$$$$$$..

提示

请仔细观察样例,尤其要注意句点的数量和输出位置。

挺简单的,,就是有点复杂。。

AC代码(代码里解释):

/*************************************************************************
	> File Name: a.cpp
	> Author: zzuspy
	> Mail: [email protected]
	> Created Time: 2014年12月02日 星期二 19时10分42秒
 ************************************************************************/

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#define LL long long
#define max3(a,b,c) max(a,max(b,c))
#define min3(a,b,c) min(a,min(b,c))
using namespace std;

char a[130][130];         //最多到30,所以这么大够了
int cen;                       //记录外面的层数

void init(char a[][130])          //初始化
{
	for(int i=59; i<=63; i++)
	{
		for(int j=59; j<=63; j++)
		{
 			a[i][j] = '.';
		 }
       	}
	 for(int i=59, j=61; i<=63; i++)
	 {
		 a[i][j] = '$';
	 }
	 for(int i=59, j=61; i<=63; i++)
 	{
 		a[j][i] = '$';
	 }
	 cen=0;
}

void fun(char a[][130])        //每次往外面加一层
{
	int min = 59-(cen+1)*2, max = 63+(cen+1)*2;       //加一层后字符的最小下标和最大下标
	for(int i=min; i<=max; i++)
	{
		a[i][min] = '$';
		a[min][i] = '$';
		a[i][max] = '$';
		a[max][i] = '$';
	}
	for(int i=min; i<=max; i++)
	{
		a[min+1][i] = '.';
		a[max-1][i] = '.';
		a[i][min+1] = '.';
		a[i][max-1] = '.';
	}
	a[min+1][min+2] = a[min+1][max-2] = '$';
	a[min+2][min+1] = a[min+2][min+2] = a[min+2][max-1] = a[min+2][max-2] = '$';
	a[max-1][min+2] = a[max-1][max-2] = '$';
	a[max-2][min+1] = a[max-2][min+2] = a[max-2][max-1] = a[max-2][max-2] = '$';
	a[min][min] = a[min][max] = a[max][min] =a[max][max] = '.';
	cen++;
}

int main()
{
	int n;
	init(a);
	scanf("%d", &n);
	int min = 59-n*2, max = 63+n*2;
	while(n--)
	{
		fun(a);
	}
	for(int i = min; i<=max; i++)
	{
		for(int j = min; j<=max; j++)
		{
			printf("%c", a[i][j]);
		}
		printf("\n");
	}
	return 0;
}
时间: 2024-08-07 15:36:47

蓝桥杯 - 打印十字图 (文字图形类)的相关文章

蓝桥杯-打印十字图

历届试题 打印十字图 时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 问题描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示: ..$$$$$$$$$$$$$.. ..$...........$.. $$$.$$$$$$$$$.$$$ $...$.......$...$ $.$$$.$$$$$.$$$.$ $.$...$...$...$.$ $.$.$$$.$.$$$.$.$ $.$.$...$...$.$.$ $.$.$.$$$$$.$.$.$ $.$

【蓝桥杯】历届试题 打印十字图

历届试题 打印十字图   时间限制:1.0s   内存限制:256.0MB 问题描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示: ..$$$$$$$$$$$$$....$...........$..$$$.$$$$$$$$$.$$$$...$.......$...$$.$$$.$$$$$.$$$.$$.$...$...$...$.$$.$.$$$.$.$$$.$.$$.$.$...$...$.$.$$.$.$.$$$$$.$.$.$$.$.$...$...$.$.$$.$.

蓝桥杯 历届试题 PREV-2 打印十字图

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

蓝桥杯 历届试题 打印十字图

历届试题 打印十字图 时间限制:1.0s   内存限制:256.0MB 问题描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示: ..$$$$$$$$$$$$$.. ..$...........$.. $$$.$$$$$$$$$.$$$ $...$.......$...$ $.$$$.$$$$$.$$$.$ $.$...$...$...$.$ $.$.$$$.$.$$$.$.$ $.$.$...$...$.$.$ $.$.$.$$$$$.$.$.$ $.$.$...$...$.

【蓝桥杯】打印十字图(图形规律)

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

第四届蓝桥杯javaC组_打印十字图

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: 蓝桥杯赛题 * 作    者:   彭俊豪 * 完成日期:   2016   年 04月 01日 * 版 本 号:      001 * 对任务及求解方法的描述部分 * 问题描述: 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示(可参见p1.jpg) 对方同时也需要在电脑dos窗口中

算法笔记_198:历届试题 打印十字图(Java)

目录 1 问题描述 2 解决方案   1 问题描述 问题描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示: ..$$$$$$$$$$$$$....$...........$..$$$.$$$$$$$$$.$$$$...$.......$...$$.$$$.$$$$$.$$$.$$.$...$...$...$.$$.$.$$$.$.$$$.$.$$.$.$...$...$.$.$$.$.$.$$$$$.$.$.$$.$.$...$...$.$.$$.$.$$$.$.$$$.$.

打印十字图

问题描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示: 对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数. 输入格式 一个正整数 n (n<30) 表示要求打印图形的层数. 输出格式 对应包围层数的该标志. 样例输入1 1 样例输出1 提示 请仔细观察样例,尤其要注意句点的数量和输出位置. 分析:其实就是一个模拟的水题,关键就是题目给的提示:观察位置!要是因为麻烦而写乱了那就等于不要这送分题啦.. 1 #include<iostream> 2

蓝桥杯——基础练习之字母图形

基础,相同须要认真! 问题描写叙述 利用字母能够组成一些漂亮的图形,以下给出了一个样例: ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形. 输入格式 输入一行,包括两个整数n和m,分别表示你要输出的图形的行数的列数. 输出格式 输出n行,每一个m个字符,为你的图形. 例子输入 5 7 例子输出 ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 数据规模与约定 1