POJ 2083 递归绘制图形
2011-05-18 22:38
489 查看
/* POJ 2083 简单递归 即输出图形 X - X X X X X - X X X X X X X X X X X X X X X X X X X X X X X X X - X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X - */ #include<iostream> using namespace std; bool map[730][730]; //print()函数并不绘制图形,而是根据坐标改变map[x][y]的值 int muti[] = {1,3,9,27,81,243,729};//3的N次幂表 void print(int x,int y,int cur){ if(cur==1){ map[x][y] = true; return ; } //递归绘制左上角的图形 print(x,y,cur-1); print(x,y+2*muti[cur-2],cur-1); //递归绘制右上角的图形 print(x+muti[cur-2],y+muti[cur-2],cur-1); //递归绘制中间的图形 print(x+2*muti[cur-2],y,cur-1); //递归绘制左下角的图形 print(x+2*muti[cur-2],y+2*muti[cur-2],cur-1); //递归绘制右下角的图形 } int main(){ int n; while(cin>>n&&n!=-1){ memset(map,false,sizeof(map)); print(1,1,n); for(int i=1;i<=muti[n-1];i++){ for(int j=1;j<=muti[n-1];j++){ if(map[i][j])cout<<"X"; else cout<<" "; } cout<<endl; } cout<<"-"<<endl; } return 0; }
相关文章推荐
- poj 2083 Fractal 递归 图形打印
- 有趣的分形图形-递归和数学方法解决-POJ 2083
- poj 3768 递归(绘制图形)
- POJ 2083 递归画分形图
- POJ 2083 Fractal 分治+递归
- POJ—2083—Fractal—【递归与分治】
- POJ 2083 Fractal 递归
- POJ 2083 Fractal(递归)
- (简单递归3.4.1)POJ 2083 Fractal(分形图的打印)
- 初入算法篇 (递归)——poj2083
- poj 2083 Fractal 分形基本方法( 总结) 递归
- POJ 2083 Fractal 递归画分形
- poj 2083 Fractal 纯递归,挺好, 我的版本
- 递归绘制图形
- poj1941 The Sierpinski Fractal(递归输出图形)
- poj 1941 The Sierpinski Fractal(递归打印图形)
- 【递归输出图形】POJ_1941
- poj 2083 Fractal 递归
- poj 1941 递归输出图形(Sierpinski Fractal)
- poj 2083 Fractal 【递归打印字符】