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;

}

相关推荐
为何创造硅基生物4 小时前
C语言 结构体内存对齐规则(通俗易懂版)
c语言·开发语言
吃好睡好便好4 小时前
在Matlab中绘制横直方图
开发语言·学习·算法·matlab
仰泳之鹅4 小时前
【C语言】自定义数据类型2——联合体与枚举
c语言·开发语言·算法
jolimark5 小时前
C语言自学攻略:小白入门三步走
c语言·编程入门·学习路线·实践项目·自学攻略
于小猿Sup5 小时前
VMware在Ubuntu22.04驱动Livox Mid360s
linux·c++·嵌入式硬件·自动驾驶
cen__y6 小时前
Linux12(Git01)
linux·运维·服务器·c语言·开发语言·git
社交怪人6 小时前
【算平均分】信息学奥赛一本通C语言解法(题号2071)
c语言·开发语言
x_yeyue6 小时前
三角形数
笔记·算法·数论·组合数学
卢锡荣7 小时前
单芯通吃,盲插标杆 —— 乐得瑞 LDR6020,Type‑C 全场景互联 “智慧芯”
c语言·开发语言·计算机外设
念何架构之路7 小时前
Go语言加密算法
数据结构·算法·哈希算法