首页 > 其他分享 >分形简单版

分形简单版

时间:2023-11-20 15:44:06浏览次数:35  
标签:draw triangle sizes int void char 分形 简单


我的代码:

 #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]);
}

这两种思路都要会

标签:draw,triangle,sizes,int,void,char,分形,简单
From: https://www.cnblogs.com/dingxingdi/p/17844100.html

相关文章

  • JAVA分批处理数据简单示例
    功能描述在处理业务时,经常遇到需要分批次处理数据的场景,例如有105条数据,每次推送20条,分批次推送最后不足20条数据时,一次性推送全部剩余数据DEMO示例packageshiguang.test;importjava.util.ArrayList;importjava.util.List;publicclassBatchProcessingExample{......
  • 简单统计SQLSERVER用户数据表大小(包括记录总数和空间占用情况)
    在SQLSERVER,简单的组合sp_spaceused和sp_MSforeachtable这两个存储过程,可以方便的统计出用户数据表的大小,包括记录总数和空间占用情况,非常实用,在SqlServer2K和SqlServer2005中都测试通过。/*1.execsp_spaceused'表名'      (SQL统计数据,大量事务操作后可能不准)2.exe......
  • 简单的低开编辑器(一):实现组件渲染
    好家伙, 项目目录如下:该项目使用Vue3,Element-plus 效果图如下:  开搞:1.写出简单界面App.vue<template><divclass="app"><Editorv-model="state"></Editor></div></template><script>import{ref,p......
  • 一块简单电路板开发过程思路解析
    一块简单电路板开发过程的基本思路如下:明确需求:明确电路板的功能需求和外形需求,包括各个模块电路之间的关系等。硬件系统设计:根据产品的功能需求来确定产品的供电方式、传感器类型、通信方式、人机交互方式等,并绘制系统的框图。元器件选型:根据电路板的功能需求和系统框图,选择合适的......
  • verdi仿真的简单使用
    对于IC的从业人员来说,Verdi是使用频率很高的工具,这也是Synopsys(新思科技)的EDA工具。笔者之前都是使用vivado或者modelsim进行代码仿真,当然modelsim是使用最多的,后面接触了IC并且使用过verdi进行仿真后,觉得Verdi更好用,效率更高。当然笔者是做设计的仿真工具只是为了确保代码......
  • 简单选择排序
    目录基本原理举例示例代码总结简单选择排序VS堆排序简单选择排序VS冒泡排序本文主要介绍简单选择排序的基本原理、具体例子,以及代码实现。基本原理简单选择排序的基本原理是:在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。再从剩余未排序元素中继续寻找最小(大)......
  • Docker部署Excalidraw | 一个功能齐全、操作简单的画板
    一、介绍界面简洁,交互细致,上手简单,操作习惯和大部分制图软件相似免注册,支持中文界面,打开浏览器就能开始画图支持众多键盘快捷键操作,配合鼠标能快速画图(适配触摸屏)内容安全受保护,Excalidraw采用端到端加密,绘图内容不会上传到服务器支持通过网页链接共享协作二、部署Excalid......
  • Docker部署Excalidraw | 一个功能齐全、操作简单的画板
    一、介绍界面简洁,交互细致,上手简单,操作习惯和大部分制图软件相似免注册,支持中文界面,打开浏览器就能开始画图支持众多键盘快捷键操作,配合鼠标能快速画图(适配触摸屏)内容安全受保护,Excalidraw采用端到端加密,绘图内容不会上传到服务器支持通过网页链接共享协作二、部署Excalid......
  • 简单神经网络(py)
    1importnumpy2#激活函数库3importscipy.special45importmatplotlib.pyplot67#neutralnetworkclassdefinition8classneutralNetwork:9def__init__(self,inputnodes,hiddennodes,outputnodes,learningrate):10#定义各个......
  • Halo2简单示例
    Halo2简介[[Halo2]]是使用[[Rust]]语言开发,基于[[PLANK算法]]的,一款开源交互式([[STARKs]]),[[零知识证明(ZKP)]]的[[证明系统]]。GitHub仓库地址:halo2不同于普通的开发框架,Halo2中的功能开发称为电路(Circuit)开发,电路开发使用表格来设计并记录运算,并包含一系列的约束来验证......