小白月赛C-方豆子

news2024/12/27 21:57:00

方豆子

题目描述

阿宁最近对吃豆子感兴趣,阿宁想要用程序输出一下,但是图形化对于阿宁来说太难。因此他决定用字符,并且是方形的模样。
 

给一个正整数n,输出n级好豆子。

 

 

 题解:每个豆子都由四个豆子组成,包括一级豆子,我们可以把一级豆子看成是四个0级豆子组成,即

0级坏豆子

***

***

***

0级好豆子

...

...

...

因此我们开一个足够大的字符数组,从四个点出发填入四个豆子对应的字符,一直递进到0级,后回填。代码如下。

 

#include<iostream>
#include<vector>
#include<stack>
#include<cmath>
#include<queue>
#include<algorithm>
using namespace std;
queue<long long> q;

const int N = 3500;

char s[N][N];
string s1 = "...";
string s2 = "***";
void dfs(int u,int f,int x,int y)
{
	if (u == 0)
	{
		if (f == 1)
		{
			for (int i = x; i <= x + 3; i++)
			{
				for (int j = y; j <= y + 3; j++)
				{
					s[i][j] = '*';
				}
			}
		}
		if (f == 0)

		{

			for (int i = x; i <= x + 3; i++)
			{
				for (int j = y; j <= y + 3; j++)
				{
					s[i][j] = '.';
				}
			}
		}
		return;
	}
	else
	{
		if (f == 1)
		{
			dfs(u - 1, 0, x, y);
			dfs(u - 1, 0, x + 3 * pow(2, u - 1), y);
			dfs(u - 1, 0, x, y + 3 * pow(2, u - 1));
			dfs(u - 1, 1, x + 3 * pow(2, u - 1), y + 3 * pow(2, u - 1));
		}
		else if (f == 0)
		{
			dfs(u - 1, 1, x, y);
			dfs(u - 1, 1, x + 3 * pow(2, u - 1), y);
			dfs(u - 1, 1, x, y + 3 * pow(2, u - 1));
			dfs(u - 1, 0, x + 3 * pow(2, u - 1), y + 3 * pow(2, u - 1));
		}
	}
}

int main()
{
	
	int n;
	cin >> n;
	
	dfs(n, 0, 1, 1);
	int m = 3 * pow(2, n);
	for (int i = 1; i <= m; i++)
	{
		for (int j = 1; j <= m; j++)
		{
			cout << s[i][j];
		}
		cout << endl;
	}

	//dfs(n,1);
	
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/706280.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue之计算属性(computed)

文章目录 前言一、计算属性二、实例1.缓存优势计算属性内部的属性&#xff0c;在第一次访问时会读取它的值&#xff0c;然后存入缓存 2.简写简写其实就是当确定计算属性内的属性只读不更改&#xff0c;即只有get函数没有写set函数时简写的方式 3.补充 总结 前言 计算属性 一、…

Odoo16 微信公众号模块开发示例

Odoo16 微信公众号模块开发示例 本模块基于 aiohttp asyncio 进行异步微信公众号接口开发, 仅实现了部分 API 仅供学习参考&#xff0c;更完善的同步接口请参考&#xff1a;wechatpy 或 werobot&#xff0c;可用来替代 模块中的 wechat client。 业务需求 小程序中需要用户…

std::bind的讲解

一、在讲解std::bind之前&#xff0c;我们先来复习下std::function。 std::function 是一个“可调用对象”包装器&#xff0c;是一个类模板&#xff0c;可以容纳除了类成员函数指针之外的所有可调用对象&#xff0c;它可以用统一的方式处理函数、函数对象、函数指针&#xff0…

async创建异步任务

想让线程之间可以有两个数据的交换。之前一直采用的是全局变量互斥锁的方法。到目前为止&#xff0c;线程运行完之后还无法提供一个返回值。 此时引入 future 和 async。 sync为同步的意思&#xff0c;async为异步任务。同步任务前文已经结束过&#xff1a;他指的是两个人协同…

SpringBoot 日志文件:日志的作用?为什么要写日志?

文章目录 &#x1f387;前言1.日志长什么样子&#xff1f;2.自定义打印日志2.1 在程序中得到日志对象2.2 使用日志对象打印日志 3.日志级别3.1 日志级别的分类与使用3.2 日志级别有什么用呢&#xff1f;3.3 日志级别的设置 4.日志持久化保存5.更方便的日志输出5.1 添加 lombok …

Celery分布式异步框架

Celery异步任务框架 """ 1&#xff09;可以不依赖任何服务器&#xff0c;通过自身命令&#xff0c;启动服务(内部支持socket) 2&#xff09;celery服务为为其他项目服务提供异步解决任务需求的 注&#xff1a;会有两个服务同时运行&#xff0c;一个是项目服务&a…

Android 自定义View和事件分派 图解

Android 自定义View和事件分派 图解_猎羽的博客-CSDN博客https://blog.csdn.net/feather_wch/article/details/131487012

并查集和LRUCache

目录 1. 并查集 1.1原理 1.2实现 1.3应用 1.3.1省份数量 1.3.2等式方程的可满足性 2.LRUCache 1.概念 2.实现 3.JDK中类似LRUCahe的数据结构LinkedHashMap 4.LRU Cache的OJ 1. 并查集 1.1原理 把不同的元素划分到不想交的集合.开始时,每个元素自成一个单元集合,然后…

OSGI-Bundle:概念和入门

OSGI(Open Service gateway initactive)是java动态化模块系统的一系列规范。即一个系统应用上可以有很多可插拔的小应用&#xff0c;整个应用能运行和协调&#xff0c;小应用之间也可以相互交互完成业务需求。 Bundle: bundle 是以 jar 包形式存在的一个模块化物理单元&#x…

Ceph:关于 Ceph 用户认证授权管理的一些笔记

写在前面 准备考试&#xff0c;整理 Ceph 相关笔记博文内容涉及, Ceph 用户管理&#xff0c;认证管理&#xff0c;权限管理 以及相关 Demo理解不足小伙伴帮忙指正 对每个人而言&#xff0c;真正的职责只有一个&#xff1a;找到自我。然后在心中坚守其一生&#xff0c;全心全意&…

antdesginVue a-date-picker(日期时间选择器)禁用当前时间之前的时间,包含时分秒

antdesginVue a-date-picker(日期时间选择器)禁用当前时间之前的时间&#xff0c;包含时分秒 话不多说直接上效果 <a-form-item label"发生时间" name"start_time"><a-date-pickerstyle"width: 100%"allowClearv-model:value"f…

C++模板进阶知识

文章目录 前言模板进阶1.非类型模板参数2.模板的特化2.1概念2.2函数模板特化2.3类模板特化2.3.1 全特化2.3.2 偏特化2.3.3 类模板特化应用示例 3.模板的分离编译3.1 什么是分离编译3.2 模板的分离编译3.3 解决方法 4 模板总结 后记 前言 之前我们讲过模板初阶的知识&#xff0…

Linux 解决root用户被限制连接服务器

Linux 解决root用户被限制连接服务器 1. 问题描述2. 解决问题2.1 方式一&#xff08;忘记root密码的情况&#xff09;2.2 方式二&#xff08;知道root密码的情况&#xff09; 3. 其他 1. 问题描述 使用 root 用户不能链接服务器&#xff0c;密码对&#xff0c;就是连接不上&am…

uniapp:分享一个自定义侧滑样例

首先看html,分为两部分&#xff0c;主体内容部分和功能部分&#xff0c;功能部分在css中定位到主体部分的右边 <view class"section" ref"box_center" touchstart"drawStart" touchmove"drawMove($event)"touchend"drawEnd($…

晨控智能UWB室内定位:工厂智能化的新引擎

晨控智能UWB室内定位&#xff1a;工厂智能化的新引擎 工厂是一个复杂而庞大的环境&#xff0c;通常包括多个车间、设备、人员以及大量的物料和产品。需要实时、准确的定位数据来支持各项运营活动。然而&#xff0c;传统的定位技术无法满足工厂内部的高精度定位需求。而UWB室内…

u-boot的烧写及使用,u-boot-2013.01的移植 6.30

1.将Linux的执行文件放到板子上运行 嵌入式系统 1.嵌入式系统 定制2.硬件&#xff1a;核心芯片底板软件&#xff1a;驱动应用 驱动系统应用&#xff08;并发&#xff0c;网络&#xff0c;文件。。。&#xff09;3.系统&#xff1a;linux 开源 模块化 支持芯片众多 功能…

针对字符串输入之间有空格的问题相关的问题

先说结论&#xff1a; bool flag true;while (cin >> s) {if (flag) {flag false;cout << s.size();} else {cout << , << s.size();}} 即用while&#xff08;cin>>s&#xff09;来输入&#xff0c;一段单词一段单词的来做&#xff08;遇到ci…

第十一章 原理篇:transformer模型入门

说在前面的话&#xff1a; 找工作面试不是特别顺利。进了目标公司的二面&#xff0c;但是一面面试官问的一些“新技术”问题答得不太好&#xff0c;尤其是transformer相关的。这一点确实是自己的问题&#xff0c;在工作后总是面向业务学习&#xff0c;对很多算法都是处于“听说…

AD从原理图到PCB超详细教程

AD超详细教程 前言一、建立一个工程模板二、原理图1.设计原理图。2.使用AD自带库和网上开源原理图库3.画原理图库4.编译原理图 三、PCB1.确定元器件尺寸大小2.绘制PCB Library①使用元器件向导绘制元件库②原理图与PCB的映射 3.绘制PCB①更新PCB②调整元件位置③布线④漏线检查…

库操作和表操作(数据库系列2)

目录 前言&#xff1a; 1.数据库的操作 1.1显示当前的数据库 1.2创建数据库 1.3使用数据库 1.4删除数据库 2.常用数据类型 2.1数值类型 2.2字符串类型 2.3日期类型 3.表的操作 3.1查看表结构 3.2创建表 3.3查看表 3.4删除表 结束语&#xff1a; 前言&#xff1…