2017图灵杯问题D 简单的图形输出(dfs)
来源:互联网 发布:导购网站源码 下载 编辑:程序博客网 时间:2024/06/11 15:46
题目描述
谢尔宾斯基三角形是一种分形,它的构造过程是这样的:
1.取一个实心的三角形。(多数使用等边三角形)
2.沿三边中点的连线,将它分成四个小三角形。
3.去掉中间的那一个小三角形。
4.对其余三个小三角形重复1。
我们想尝试用斜线、反斜线和下划线画出谢尔宾斯基三角,假设最小的三角是长这样的:
/\
/__\
1.取一个实心的三角形。(多数使用等边三角形)
2.沿三边中点的连线,将它分成四个小三角形。
3.去掉中间的那一个小三角形。
4.对其余三个小三角形重复1。
我们想尝试用斜线、反斜线和下划线画出谢尔宾斯基三角,假设最小的三角是长这样的:
/\
/__\
具体规律详见样例。
输入
多组数据输入输出。每行有一个整数n(1<=n<=10),表示执行了一次操作1,n=0时结束输入。
输出
画出执行n次操作1后的图形,调整你的输出到最左端(底边的第一个斜杠在第一列)。输出不能包含任何尾随空格。在每个测试用例后打印空行。
样例输入
3210
样例输出
/\ /__\ /\ /\ /__\/__\ /\ /\ /__\ /__\ /\ /\ /\ /\/__\/__\/__\/__\ /\ /__\ /\ /\/__\/__\ /\/__\
思路:找规律,观察图形和输入n之间的关系,然后递归即可;
ps:赋值'\'必须写成'\\',类似%的输出规则;
代码:
#include <cstdio>#include <cstring>#define N 2050using namespace std;int n;char s[N/2][N];void print(int x,int y,int d){ int offset=1<<(d-1); if(d==1){ s[x][y]=s[x+1][y-1]='/'; s[x][y+1]=s[x+1][y+2]='\\'; s[x+1][y]=s[x+1][y+1]='_'; return ;} print(x,y,d-1); print(x+offset, y-offset, d-1); print(x+offset, y+offset, d-1);}int main(){ while(scanf("%d",&n) && n){ int i,j,k; for(i=1;i<=(1<<n);i++) for(j=1;j<=(1<<(n+1));j++) s[i][j]=' '; print(1,(1<<n),n); k=(1<<n)+1; for(i=1;i<=(1<<n);i++,k++){ for(j=1;j<=k;j++) putchar(s[i][j]); printf("\n");} printf("\n");} return 0;}
阅读全文
1 0
- 2017图灵杯问题D 简单的图形输出(dfs)
- 图形的输出(简单)
- 输出简单的图形
- 输出简单的图形
- 图灵杯-第四届“图灵杯”NEUQ-ACM 程序设计竞赛-D-简单图形输出
- ODE 3D图形的简单绘制
- 路径输出问题-(DFS)
- 输出简单图形
- 第二周项目3输出图形(d)
- 城堡问题(简单DFS)
- 3D图形及OpenGL的简单介绍
- poj 1321 棋盘问题 (简单的DFS)
- 搜索入门(DFS)最简单的部分和问题
- 简单的python程序--图形输出数字参数序列
- 十一、Qt 2D绘图(一)绘制简单图形
- Qt 2D绘图(一)绘制简单图形
- Quartz 2D学习(一)简单绘制图形
- 【DFS】(一)最简单的递归dfs——水坑问题(poj2386)
- NDK提供的共享库(Prebuilt)
- 深入理解HTTP协议(转载)
- python 实现斯坦福机器学习实验2.1
- Oracle 中MERGE语句的用法(转载)
- Python抓取花瓣网高清美图
- 2017图灵杯问题D 简单的图形输出(dfs)
- 查看网页是否压缩gzip+编码方式
- SUBSTRING_INDEX拆分字符串
- 6. ZigZag Conversion
- FOS双向链表
- 在gradle中使用MyBatis Generator生成model,dao,mapper
- vue,js修饰符
- ARKit 初学和发布会 Demo
- PHP命名空间