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;

}

相关推荐
cpp_25012 分钟前
P2430 严酷的训练
数据结构·c++·算法·动态规划·洛谷·背包dp
Rabitebla6 分钟前
【数据结构】实现通讯录:基于C语言动态顺序表
c语言·开发语言·数据结构·算法
tankeven9 分钟前
动态规划专题(06):树形动态规划(未完待续)
c++·算法·动态规划
满天星830357710 分钟前
【Linux/多路复用】poll和epoll的使用
linux·服务器·c++·后端
米粒113 分钟前
力扣算法刷题 Day 52
算法·leetcode·职场和发展
今儿敲了吗14 分钟前
应用实战2:新闻列表
学习·算法
waves浪游21 分钟前
进程间通信(上)
linux·运维·服务器·开发语言·c++
hhb_61833 分钟前
C Shell脚本编程与系统管理技术实践指南
java·c语言·开发语言
棋子入局35 分钟前
C语言制作消消乐游戏(3)
c语言·开发语言·游戏
6Hzlia37 分钟前
【Hot 100 刷题计划】 LeetCode 102. 二叉树的层序遍历 | C++ 极简 DFS 巧解
c++·leetcode·深度优先