C - Sierpinski carpet(abc357)

题意:

  • 中央区块完全由白色单元格组成。
    • 其他八个区块是 (𝐾−1)(K−1) 级地毯。

给你一个非负整数 N 。

请按照指定格式打印 N 级地毯。

分析:先把地毯分成九块

除了中间那块,其它都是由左上角那块延申出来的

#include<bits/stdc++.h>

using namespace std;

char a[1000][1000];

int main(){

int n;cin>>n;

a[1][1]='#'; int c=1;

for(int i=1;i<=pow(3,n);i++){

a[i][0]='#';a[0][i]='#';

}

for(int z=1;z<=n;z++){

c*=3;

for(int i=1;i<=c;i++){

for(int j=1;j<=c;j++){

if(i>c/3||j>c/3){//除了左上角那块

if((i>c/3&&i<=2*(c/3))&&(j>c/3&&j<=2*(c/3))){//中间那块

a[i][j]='.';

}

else if(i<=c/3&&j>c/3){

a[i][j]=a[i][j%(c/3)];

}

else a[i][j]=a[i%(c/3)][j];

}

}

}

}

for(int i=1;i<=c;i++){

for(int j=1;j<=c;j++){

cout<<a[i][j];

}

cout<<endl;

}

return 0;

}

相关推荐
十年编程老舅几秒前
Linux 多线程高并发编程:读写锁的核心原理与底层实现
linux·c++·linux内核·高并发·线程池·多线程·多进程
迈巴赫车主1 分钟前
求最大公约数-欧几里得算法(辗转相除法)
算法·最大公约数
wildlily84274 分钟前
C++ Primer 第5版章节题 第十三章(二)
开发语言·c++
lxl130713 分钟前
C++算法(15)BFS_FloodFill
算法·宽度优先
小王C语言17 分钟前
【基础IO】————简单设计一下libc库
前端·数据结构·算法
亦复何言??18 分钟前
BeyondMimic 论文解析
人工智能·算法·机器人
WolfGang00732122 分钟前
代码随想录算法训练营 Day20 | 回溯算法 part02
算法
YXXY31324 分钟前
前缀和算法
算法
客卿12324 分钟前
滑动窗口--模板
java·算法
xiaoye-duck32 分钟前
【C++:unordered_set和unordered_map】 深度解析:使用、差异、性能与场景选择
开发语言·c++·stl