洛谷递推与递归题单之南蛮图腾
南蛮图腾
题目背景
自从到了南蛮之地,孔明不仅把孟获收拾的服服帖帖,而且还发现了不少少数民族的智慧,他发现少数民族的图腾往往有着一种分形的效果,在得到了酋长的传授后,孔明掌握了不少绘图技术,但唯独不会画他们的图腾,于是他找上了你的爷爷的爷爷的爷爷的爷爷……帮忙,作为一个好孙子的孙子的孙子的孙子……你能做到吗?
题目描述
给定一个正整数 n n n,参考输出样例,输出图形。
输入格式
每个数据输入一个正整数 n n n,表示图腾的大小(此大小非彼大小)
输出格式
这个大小的图腾
样例 #1
样例输入 #1
2
样例输出 #1
/\/__\/\ /\
/__\/__\
样例 #2
样例输入 #2
3
样例输出 #2
/\/__\/\ /\/__\/__\/\ /\/__\ /__\/\ /\ /\ /\
/__\/__\/__\/__\
提示
数据保证, 1 ≤ n ≤ 10 1 \leq n \leq 10 1≤n≤10。
思路
本题是一个分治或者说是递推的问题
可以看出来n=1时是最基础的图形,如下
/\/__\
当n=2时可以看成这个基础图形先向下复制一遍,在向右复制一遍,最后向上复制一遍(如果这一步不做上面的三角形就会变成靠左,如下图2)
/\/__\/\ /\/__\/__\
/\/__\/\ /\/__\/__\ 错误排列,如果不将顶部三角重新排列的话
每复制一次长和宽都要乘以2
下面用具体的图来解释一下怎么一步一步复制的
上代码
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=3000;
char g[N][N];
int h=2,w=4;
int main(){int n;cin>>n;//注意要全部初始化为空格memset(g,' ',sizeof g);//将初始的图形输入g[1][1]=g[1][4]=' ';g[2][1]=g[1][2]='/';g[2][2]=g[2][3]='_';g[1][3]=g[2][4]='\\';//注意转义字符while(n>1){for(int i=1;i<=h;i++){for(int j=1;j<=w;j++){g[i+h][j]=g[i+h][j+w]=g[i][j];//先向下向右复制一份g[i][j]=' ';//清空上面的}}for(int i=1;i<=h;i++){for(int j=1;j<=w;j++){g[i][j+w/2]=g[i+h][j];}}w*=2;h*=2;n--;}for(int i=1;i<=h;i++){for(int j=1;j<=w;j++){cout<<g[i][j];}cout<<endl;}system("pause");return 0;
}
洛谷递推与递归题单之南蛮图腾相关推荐
- 【OJ】洛谷函数与结构体题单题解锦集
题单简介 题目解析 P5735 距离函数 P5736 质数筛 P5737 闰年展示 P5738 歌唱比赛 P5739 计算阶乘 P5461 赦免战俘 P5740 最厉害的学生 P5741 旗鼓相当的对 ...
- 基本算法之递推与递归的简单应用
递推与递归的简单应用 常见的枚举形式 实现指数型枚举 DFS (一) DFS (二) 位运算(一) 位运算(二) 实现组合型枚举 DFS + 剪枝 实现排列型枚举 DFS 费解的开关 奇怪的汉诺塔 分 ...
- 0x02.基本算法 — 递推与递归
目录 一.递推与递归 二.分治 三.模拟计算机实现递归 四.相应习题: 0.AcWing 92. 递归实现指数型枚举(递归/循环+位运算) 1.AcWing 93. 递归实现组合型枚举 2.AcWin ...
- 算法设计与分析 1 递推与递归
递推与递归 Fibonacci #include<stdio.h> #pragma warning (disabled:4996) #define MAX 100 int f[MAX];/ ...
- 算法总结之递推与递归
递推算法 递归算法大致包括两方面的内容:1)递归起点 : 2)递归关系 递推起点 递归起点一般由题目或者实际情况确定,不由递归关系推出.如果无法确定递归起点,那么递归算法就无法实现.可见,递归起点是递 ...
- 递推与递归 (区别)
递推与递归 本文中部分内容转自他人博客,作者相关信息以及博客地址在文末. 概念 递归:从已知问题的结果出发,用迭代表达式逐步推算出问题的开始的条件,即顺推法的逆过程,称为递归. 递归的定义:在一个函数 ...
- 昆虫繁殖(继续理解递推和递归)
昆虫繁殖(继续理解递推和递归) /*[题目描述] 科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强.每对成虫过x个月产y对卵,每对卵要过两个月长成成虫.假设每个成虫不死,第一个月只有一对 ...
- 递推和递归(C语言)
文章目录 前言 一.递推原理 1.递推概念 2.递推关系 3.递推特点 4.递推详例 5.解决递推问题的步骤 二.递归原理 1.递归的概念 2.构成递归的条件 3.递归的模板 4.递归详例 三.递推和 ...
- 算法设计分析之------ 递推与递归篇二
递推与递归篇二 递归 Secret Cow Code S 黑白棋子的移动 递推(动态规划) 覆盖墙壁 递归 Secret Cow Code S 题目链接:Secret Cow Code S 解题思路 ...
最新文章
- 基于卷积神经网络(CNN)的仙人掌图像分类
- 好玩!PyEcharts 绘制时间轮播图
- [爬虫学习笔记]C# 使用 ScrapySharp 并行下载天涯图片
- 【干货】Hey, 扁平你个锤子
- PHP的getimagesize获取图像信息
- 网页中自动换行问题〔zz〕
- C++编译预处理:宏定义指令、文件包含指令和条件编译指令
- 单点登录系统cas资料汇总
- 基于JavaFX实现的数据库学生管理系统
- go web框架_golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web
- 语义分割——DeepLabv3+的学习笔记~
- spark sql python_Spark 3.0开发近两年终于发布,流、Python、SQL重大更新详解
- 游戏辅助制作核心--植物大战僵尸逆向之植物叠加种植(八)
- Vertica的这些事(四)—— 关于vertica常用函数介绍(持续更新ing)
- 虚拟地址空间【详解】 虚拟地址空间是什么 | 为什么要有虚拟地址空间
- 阿里云主机免费申请级网站配置
- 八款知名MartingaleEA 策略的评价
- ShareSDK的使用
- 90+高分拿下阿里云acp认证,附完整备考流程和考试资料
- 【芯片验证学习纪实】System Verilog语法(1)
热门文章
- Be Free - Belinda
- 微信小程序 实现阿里云上传
- 主网已经上线的币有哪些_浅谈上线主网后的虚拟币行情
- BSV网络上的拍卖合约
- 简书新版 app 发布会,Right!Write!
- linux小白工具,一个小工具(setup),小白也能独立管理自己的Linux服务器
- Web3 入门手册:从认知到实践
- 安排项目宣讲日程得到最多的宣讲场次
- 怎样快速学习软件测试?软件测试学习方法
- tar: cannot change ownership to uid ***, gid ***: Operation not permitted