南蛮图腾

题目背景

自从到了南蛮之地,孔明不仅把孟获收拾的服服帖帖,而且还发现了不少少数民族的智慧,他发现少数民族的图腾往往有着一种分形的效果,在得到了酋长的传授后,孔明掌握了不少绘图技术,但唯独不会画他们的图腾,于是他找上了你的爷爷的爷爷的爷爷的爷爷……帮忙,作为一个好孙子的孙子的孙子的孙子……你能做到吗?

题目描述

给定一个正整数 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;
}

洛谷递推与递归题单之南蛮图腾相关推荐

  1. 【OJ】洛谷函数与结构体题单题解锦集

    题单简介 题目解析 P5735 距离函数 P5736 质数筛 P5737 闰年展示 P5738 歌唱比赛 P5739 计算阶乘 P5461 赦免战俘 P5740 最厉害的学生 P5741 旗鼓相当的对 ...

  2. 基本算法之递推与递归的简单应用

    递推与递归的简单应用 常见的枚举形式 实现指数型枚举 DFS (一) DFS (二) 位运算(一) 位运算(二) 实现组合型枚举 DFS + 剪枝 实现排列型枚举 DFS 费解的开关 奇怪的汉诺塔 分 ...

  3. 0x02.基本算法 — 递推与递归

    目录 一.递推与递归 二.分治 三.模拟计算机实现递归 四.相应习题: 0.AcWing 92. 递归实现指数型枚举(递归/循环+位运算) 1.AcWing 93. 递归实现组合型枚举 2.AcWin ...

  4. 算法设计与分析 1 递推与递归

    递推与递归 Fibonacci #include<stdio.h> #pragma warning (disabled:4996) #define MAX 100 int f[MAX];/ ...

  5. 算法总结之递推与递归

    递推算法 递归算法大致包括两方面的内容:1)递归起点 : 2)递归关系 递推起点 递归起点一般由题目或者实际情况确定,不由递归关系推出.如果无法确定递归起点,那么递归算法就无法实现.可见,递归起点是递 ...

  6. 递推与递归 (区别)

    递推与递归 本文中部分内容转自他人博客,作者相关信息以及博客地址在文末. 概念 递归:从已知问题的结果出发,用迭代表达式逐步推算出问题的开始的条件,即顺推法的逆过程,称为递归. 递归的定义:在一个函数 ...

  7. 昆虫繁殖(继续理解递推和递归)

    昆虫繁殖(继续理解递推和递归) /*[题目描述] 科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强.每对成虫过x个月产y对卵,每对卵要过两个月长成成虫.假设每个成虫不死,第一个月只有一对 ...

  8. 递推和递归(C语言)

    文章目录 前言 一.递推原理 1.递推概念 2.递推关系 3.递推特点 4.递推详例 5.解决递推问题的步骤 二.递归原理 1.递归的概念 2.构成递归的条件 3.递归的模板 4.递归详例 三.递推和 ...

  9. 算法设计分析之------ 递推与递归篇二

    递推与递归篇二 递归 Secret Cow Code S 黑白棋子的移动 递推(动态规划) 覆盖墙壁 递归 Secret Cow Code S 题目链接:Secret Cow Code S 解题思路 ...

最新文章

  1. 基于卷积神经网络(CNN)的仙人掌图像分类
  2. 好玩!PyEcharts 绘制时间轮播图
  3. [爬虫学习笔记]C# 使用 ScrapySharp 并行下载天涯图片
  4. 【干货】Hey, 扁平你个锤子
  5. PHP的getimagesize获取图像信息
  6. 网页中自动换行问题〔zz〕
  7. C++编译预处理:宏定义指令、文件包含指令和条件编译指令
  8. 单点登录系统cas资料汇总
  9. 基于JavaFX实现的数据库学生管理系统
  10. go web框架_golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web
  11. 语义分割——DeepLabv3+的学习笔记~
  12. spark sql python_Spark 3.0开发近两年终于发布,流、Python、SQL重大更新详解
  13. 游戏辅助制作核心--植物大战僵尸逆向之植物叠加种植(八)
  14. Vertica的这些事(四)—— 关于vertica常用函数介绍(持续更新ing)
  15. 虚拟地址空间【详解】 虚拟地址空间是什么 | 为什么要有虚拟地址空间
  16. 阿里云主机免费申请级网站配置
  17. 八款知名MartingaleEA 策略的评价
  18. ShareSDK的使用
  19. 90+高分拿下阿里云acp认证,附完整备考流程和考试资料
  20. 【芯片验证学习纪实】System Verilog语法(1)

热门文章

  1. Be Free - Belinda
  2. 微信小程序 实现阿里云上传
  3. 主网已经上线的币有哪些_浅谈上线主网后的虚拟币行情
  4. BSV网络上的拍卖合约
  5. 简书新版 app 发布会,Right!Write!
  6. linux小白工具,一个小工具(setup),小白也能独立管理自己的Linux服务器
  7. Web3 入门手册:从认知到实践
  8. 安排项目宣讲日程得到最多的宣讲场次
  9. 怎样快速学习软件测试?软件测试学习方法
  10. tar: cannot change ownership to uid ***, gid ***: Operation not permitted