分形简单版


我的代码:

#include<bits/stdc++.h>
using namespace std;
const int N=1000;
int n;
char s[N][N];
void work(int x)
{if(x==1) {s[0][0]='*';return;}work(x-1);for(int i=0;i<(1<<x-2);i++)for(int j=(1<<x-2);j<(1<<x-1);j++) s[i][j]=s[i][j-(1<<x-2)];for(int i=(1<<x-2);i<(1<<x-1);i++)for(int j=0;j<(1<<x-2);j++) s[i][j]=s[i-(1<<x-2)][j];for(int i=(1<<x-2);i<(1<<x-1);i++)for(int j=(1<<x-2);j<(1<<x-1);j++) s[i][j]=' ';
}
int main()
{scanf("%d",&n);work(n);for(int i=0;i<(1<<n-1);i++) {int j=1<<n-1;j--;while(s[i][j]!='*') j--;for(int k=0;k<j;k++) printf("%c ",s[i][k]);printf("%c",s[i][j]);if(i!=(1<<n-1)-1) printf("\n");}return 0;
}

另一种实现思路

#include <iostream>
using namespace std;
void draw_triangle(int n, int x, int y);
int main()
{
int n;
cin >> n;
for(int i=0; i<65; i++){
for(int j=0; j<65; j++){
grid[i][j] = ' ';
}
}
draw_triangle(n, 0, 0);
for(int i=0; i<sizes[n]; i++){
for(int j=0; j<sizes[n]-i; j++){
if(j+1==sizes[n]-i){
cout << grid[i][j] << endl;;
}else{
cout << grid[i][j] << " ";
}
}
}
return 0;
}
int sizes[] = {0, 1, 2, 4, 8, 16, 32, 64};
char grid[65][65];
void draw_triangle(int n, int x, int y){
if(n==1){
grid[x][y] = '*';
return;
}
draw_triangle(n-1, x, y);
draw_triangle(n-1, x+sizes[n-1], y);
draw_triangle(n-1, x, y+sizes[n-1]);
}

这两种思路都要会

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查询数据库DQL

DQL 查询基本语法 -- DQL :基本语法; -- 1查询指定的字段 name entrydate 并返回select name , entrydate from tb_emp;-- 2 查询 所有字段 并返回select id, username, password, name, gender, image, job, entrydate, create_time, update_time from tb_emp;-- 2 查询…

【前端学java】复习巩固-Java中的对象比较(14)

往期回顾&#xff1a; 【前端学java】JAVA开发的依赖安装与环境配置 &#xff08;0&#xff09;【前端学 java】java的基础语法&#xff08;1&#xff09;【前端学java】JAVA中的packge与import&#xff08;2&#xff09;【前端学java】面向对象编程基础-类的使用 &#xff08…

ResizeObserver观察元素宽度的变化

ResizeObserver观察元素宽度的变化 ResizeObserver观察元素宽度的变化 ResizeObserver观察元素宽度的变化 ResizeObserver 构造函数创建一个新的 ResizeObserver 对象&#xff0c;它可以用于监听 Element 内容盒或边框盒或者 SVGElement 边界尺寸的大小。查看详细说明 案例 &l…

世微 电动车摩托车灯 5-80V 1.2A 一切二降压恒流驱动器AP2915

产品描述 AP2915 是一款可以一路灯串切换两路灯串的降压恒流驱动器,高效率、外围简单、内置功率管&#xff0c;适用于5-80V 输入的高精度降压 LED 恒流驱动芯片。内置功率管输出最大功率可达 12W&#xff0c;最大电流 1.2A。AP2915 一路灯亮切换两路灯亮&#xff0c;其中一路灯…

HarmonyOS脚手架:快捷实现ArkTs中json转对象

前言 在上篇《HarmonyOS开发&#xff1a;UI开展前的阶段总结》中提到了未来的规划&#xff0c;既能让大家学会鸿蒙开发&#xff0c;也能让大家在以后的开发中如虎添翼&#xff0c;最终决定&#xff0c;便以脚手架为产出物&#xff0c;结合实际的业务需求&#xff0c;进行相关技…

【数据科学】Python开源库数据集大全(附代码)

目录 工具库介绍scikit-learnstatsmodelsSeabornPyTorchTensorFlow DatasetsKerasNLTK参考链接 工具库介绍 为了使初学者更容易入门&#xff0c;许多开源库提供了丰富而标准化的示例数据集&#xff0c;其中包括scikit-learn、NLTK、TensorFlow Datasets、Keras Datasets、Stat…

JDY蓝牙注意事项

波特率设置&#xff1a;9600&#xff0c;不接受115200&#xff0c;或者38400. 不同于WiFi测试&#xff0c;jdy蓝牙不接受AT"指令&#xff0c;可以使用“ATVERSION"指令测试 安信可公司的那个蓝牙指令在这里没有用&#xff0c;不知道是不是生产的公司不一样

Azure Machine Learning - 什么是 Azure AI 搜索?

Azure AI 搜索&#xff08;以前称为“Azure 认知搜索”&#xff09;在传统和对话式搜索应用程序中针对用户拥有的内容提供大规模的安全信息检索。 关注TechLead&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验&#xff0c;同济本复旦…

三、机器学习基础知识:Python常用机器学习库(图像处理相关库)

文章目录 1、OpenCV1.1 窗口操作函数1.2 图像处理1.3 图像捕获与人脸检测 2、PIL2.1 主要函数2.2 表情图像合成2.3 手写数字转换2.4 滤波查找图像边缘 1、OpenCV OpenCV Python是一个用于解决计算机视觉问题的Python库&#xff0c;是用基于C实现的OpenCV构成的Python包。OpenC…

【已解决】移动号码在移动网上营业厅更换为8元保号套餐

有很多人的副卡基本是为了接收银行卡短信&#xff0c;平时基本不打电话和用流量&#xff0c;每个月固定消费在18-30左右&#xff0c;很浪费。今天发现在网上营业厅就可以修改8元保号套餐&#xff0c;分享给大家。 保号套餐 有以下两种&#xff1a; 解决办法&#xff1a; 1、…

【前端学java】Java中的异常处理(15)完结

往期回顾&#xff1a; 【前端学java】JAVA开发的依赖安装与环境配置 &#xff08;0&#xff09;【前端学java】java的基础语法&#xff08;1&#xff09;【前端学java】JAVA中的packge与import&#xff08;2&#xff09;【前端学java】面向对象编程基础-类的使用 &#xff08;…

Windows系统搭建VisualSVN服务并结合内网穿透实现公网访问

目录 前言 1. VisualSVN安装与配置 2. VisualSVN Server管理界面配置 3. 安装cpolar内网穿透 3.1 注册账号 3.2 下载cpolar客户端 3.3 登录cpolar web ui管理界面 3.4 创建公网地址 4. 固定公网地址访问 总结 前言 SVN 是 subversion 的缩写&#xff0c;是一个开放源…