C++输出谢尔宾斯基三角形
来源:互联网 发布:马云淘宝股份 编辑:程序博客网 时间:2024/06/11 19:19
题目描述
谢尔宾斯基三角形是一种分形,它的构造过程是这样的:
1.取一个实心的三角形。(多数使用等边三角形)
2.沿三边中点的连线,将它分成四个小三角形。
3.去掉中间的那一个小三角形。
4.对其余三个小三角形重复1。
我们想尝试用斜线、反斜线和下划线画出谢尔宾斯基三角,假设最小的三角是长这样的:
/\
/__\
1.取一个实心的三角形。(多数使用等边三角形)
2.沿三边中点的连线,将它分成四个小三角形。
3.去掉中间的那一个小三角形。
4.对其余三个小三角形重复1。
我们想尝试用斜线、反斜线和下划线画出谢尔宾斯基三角,假设最小的三角是长这样的:
/\
/__\
具体规律详见样例。
输入
多组数据输入输出。每行有一个整数n(1<=n<=10),表示执行了一次操作1,n=0时结束输入。
输出
画出执行n次操作1后的图形,调整你的输出到最左端(底边的第一个斜杠在第一列)。输出不能包含任何尾随空格。在每个测试用例后打印空行。
样例输入
3210
样例输出
/\ /__\ /\ /\ /__\/__\ /\ /\ /__\ /__\ /\ /\ /\ /\/__\/__\/__\/__\ /\ /__\ /\ /\/__\/__\ /\/__\
解题思路:递归求解
#include <stdio.h>#include <stdlib.h> char arr[3000][3000];int n; void func(int top,int left,int ceng){ if(ceng==2) return; for(int i=1;i<=(ceng/2-1)*2;i++) arr[top+ceng/2-1][left+i]='_'; for(int i=1;i<=ceng/2;i++) arr[top+ceng-i][left+ceng]='/'; for(int i=1;i<=ceng/2;i++) arr[top+ceng-i][left+ceng-i*2+1]='\\'; func(top,left,ceng/2); func(top+ceng/2,left,ceng/2); func(top+ceng/2,left+ceng,ceng/2); } int main() { while(1){ scanf("%d",&n); if(n==0) break; int ceng; if(n==1) ceng=2; if(n==2) ceng=4; if(n==3) ceng=8; if(n==4) ceng=16; if(n==5) ceng=32; if(n==6) ceng=64; if(n==7) ceng=128; if(n==8) ceng=256; if(n==9) ceng=512; if(n==10) ceng=1024; for(int i=1;i<=ceng;i++){ arr[i][1]='/'; arr[i][i*2]='\\'; arr[ceng][i+1]='_'; arr[ceng][ceng+(i)-1]='_'; } func(1,1,ceng); for(int i=1;i<=ceng;i++){ for(int j=1;j<=ceng-i;j++) putchar(' '); for(int j=1;j<=i*2;j++){ if(arr[i][j]!='\\'&&arr[i][j]!='_'&&arr[i][j]!='/') putchar(' '); else putchar(arr[i][j]); } putchar('\n'); } putchar('\n'); } return 0;}
阅读全文
0 0
- C++输出谢尔宾斯基三角形
- 【C++】利用swith语句输出倒三角形
- 空心三角形(图形的输出)c语言
- 输出三角形
- 输出三角形
- 输出三角形
- 输出三角形
- 输出三角形
- 三角形输出
- 输出三角形
- Linux-C基础知识学习:C语言作业-输入三角形底和高,输出三角形面积
- [C语言]使用递归输出杨辉三角形
- 第十一周:C语言:输出一个空心三角形
- 输入三角形a,b,c的值判断其能否构成三角形并输出三角形的性质
- 输入三条边 a,b,c,判断是否能构成三角形,分别输出不能构成三角形、等边三角形、等腰三角形、直角三角形、一般三角形。
- 输出以下的杨辉三角形 要求输出10行 C语言
- C# 输出数字三角形
- 输出三角形的字符
- Ubuntu安装BWA和samtools
- java Timer 定时任务
- kotlin学习1(环境搭建)
- 初识比特币——比特币地址
- 设计模式——外观模式
- C++输出谢尔宾斯基三角形
- Windows 系统下部署使用publiccms框架制作的网站
- 使用JSP+JavaBean进行分页
- MOOC清华《程序设计基础》第3章第2题:谁的饭量小
- 简单的算法问题5——整数转换为罗马字符
- 设计模式中类的关系
- SVN插件 Cannot negotiate authentication mechanism svn: Unable to connect to a repository at URL...
- 两数组的交
- 插入排序