分形简单版

我的代码:

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

这两种思路都要会

相关推荐
手握风云-2 分钟前
数据结构(Java版)第五期:ArrayList与顺序表(下)
java·数据结构·算法
不去幼儿园2 分钟前
【RL Base】多级反馈队列(MFQ)算法
人工智能·python·算法·机器学习·强化学习
土豆炒马铃薯。5 分钟前
CUDA,PyTorch,GCC 之间的版本关系
linux·c++·人工智能·pytorch·python·深度学习·opencv
是糖不是唐10 分钟前
代码随想录算法训练营第五十四天|Day54 图论
c语言·数据结构·算法·图论
不会玩技术的技术girl11 分钟前
Java爬虫与淘宝API接口:深度解析销量和商品详情数据获取
java·开发语言·爬虫
꧁༺△再临ཊ࿈ཏTSC△༻꧂17 分钟前
P1 练习卷(C++4道题)
开发语言·c++
Shiroha Wang23 分钟前
【数据结构OJ】【图论】货币套汇(图路径)
数据结构·c++·经验分享·笔记·算法·图论
我怎么又饿了呀37 分钟前
DataWhale—PumpkinBook(TASK05决策树)
算法·决策树·机器学习
DW_DROME39 分钟前
02向量与矩阵方程
线性代数·算法·矩阵
Sunyanhui140 分钟前
力扣 最大数组和-53
数据结构·算法·leetcode