Fractal---poj2083(递归和普通方法打印图形)
2024-08-27 06:24:14
题目链接:http://poj.org/problem?id=2083
这题不能用G++提交...
见到两次知道有递归的写法,然而并不会,这次发现并不难;
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std; int len[]= {,}, s[][]; void dfs(int n, int x, int y)
{
s[x][y]=;
if(n==)return ; int m = len[n]; dfs(n+, x, y);///左上
dfs(n+, x, y+*m);///左下
dfs(n+, x+*m, y);///右上
dfs(n+, x+m, y+m);///中间
dfs(n+, x+*m, y+*m);///右下
} int main()
{
memset(s, , sizeof(s));
for(int i=; i<=; i++)
len[i]=*len[i-];
dfs(, , );
int n;
while(scanf("%d", &n), n!=-)
{
for(int i=; i<=len[n]; i++)
{
for(int j=; j<=len[n]; j++)
{
if(s[i][j]==)printf("X");
else printf(" ");
}
printf("\n");
}
printf("-\n");
}
return ;
}
下面是我写的比较恶心的代码:
#include<stdio.h>
#include<string.h>
#define N 903
#define met(a, b) memset(a, b, sizeof(a)) struct node
{
int len;
char s[N][N];
}a[]; void P1(char s[][N], int X1, int X2, int Y1, int Y2, char s0[][N])
{
for(int i=X1, p=; i<=X2; i++, p++)
{
for(int j=Y1, q=; j<=Y2; j++, q++)
{
s[i][j] = s0[p][q];
}
}
}
void P2(char s[][N], int X1, int X2, int Y1, int Y2)
{
for(int i=X1; i<=X2; i++)
{
for(int j=Y1; j<=Y2; j++)
{
s[i][j] = ' ';
}
}
}
void Init()
{
met(a, );
a[].s[][] = 'X';
a[].len = ; for(int i=; i<=; i++)
{
int n = a[i-].len;
a[i].len = n*; P1(a[i].s, , n-, , n-, a[i-].s);
P2(a[i].s, , n-, n, *n-);
P1(a[i].s, , n-, *n, *n-, a[i-].s); P2(a[i].s, n, *n-, , n-);
P1(a[i].s, n, *n-, n,*n-, a[i-].s);
P2(a[i].s, n, *n-, *n, *n-); P1(a[i].s, *n, *n-, , n-, a[i-].s);
P2(a[i].s, *n, *n-, n, *n-);
P1(a[i].s, *n, *n-, *n, *n-, a[i-].s);
}
} int main()
{
Init();
int n;
while(scanf("%d", &n), n!=-)
{
for(int i=; i<a[n].len; i++)
{
for(int j=; j<a[n].len; j++)
printf("%c",a[n].s[i][j]);
printf("\n");
}
printf("-\n");
}
return ;
}
最新文章
- 【WPF】GridLengthAnimation
- HTML5中的canvas基本概念及绘图
- 数据库添加数据I
- iOS开发——总结篇&;关键字介绍
- javascript笔记——图片大小检测
- WPF--ComboBox数据绑定
- 【8】JAVA---地址App小软件(AddrDaoFile .class)(数据层)
- IE下判断IE版本语法使用
- 安装Eclipse Color Theme
- mac os X中关于dayone缓存的实际文件位置
- 深入浅出Java concurrent
- Jmeter(二十九)_dotnet搭建本地接口服务
- 调用webservice 的时候没法输入参数
- API:详解 pandas.read_csv
- 利用altium怎么生成PDF及怎么1:1打印文档
- Jquery中.attr与.prop的区别
- [Android Pro] Android 手机root 并 安装 BusyBox pro 和 Android Terminal Emulator
- 关于.net和java des加密
- ng 自定义服务
- Elasticsearch安装 + Head插件安装 + Bigdesk插件安装
热门文章
- cocos2dx中CCTableView乱位问题歪解
- [pwm]PWM的输入捕捉模式
- 缓存技术PK:选择Memcached还是Redis(转)
- 多媒体开发之分场图像和交错图像interlacing---一个破解版的迅雷云点播网站
- IE8 frameset SESSION丢失
- C#中Uri类的解释
- pybot/robot命令参数说明【dos下执行命令pybot.bat --help查看】
- Text Particle Systems
- 1853: [Scoi2010]幸运数字[容斥原理]
- egret.Capabilities 在pc和移动端输出值