分形【分治递归】
来源:互联网 发布:小学数学网络研修计划 编辑:程序博客网 时间:2024/05/23 15:37
问题描述:
分形,具有以非整数维形式充填空间的形态特征。通常被定义为“一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状”,即具有自相似的性质。
一个分形块可以定义为如下内容:
度数为1的分形块表示为:
X
度数为2的分形块表示为:
X X
X
X X
如果用B(n-1)表示度数为n-1的分形块,那么度数为n的分形块可以递归地定义为如下形式:
B(n - 1) B(n - 1)
B(n - 1)
B(n - 1) B(n - 1)
你的任务是绘制一个度数为n的分形块!
输入:
输入包括多个测试样例,每个测试样例是一个不超过7的正整数,以-1表示输入结束。
输出:
对于每一个测试样例,用大写字母‘X’表示分形盒子中的元素,按照度数要求输出分形块。每一个分形块输出结束后用破折号‘-’分隔。
输入样例:
1
2
3
4
-1
输出样例:
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
-
import java.util.Arrays;import java.util.Scanner;public class Main { void cal(char[][] a,int n,int x,int y){if(n == 1){a[x][y]='X';return ;}int m=(int) Math.pow(3, n-2);//为度为n-1形状的长度,也为同行间的空白长度cal(a,n-1,x,y);//赋值左上角cal(a,n-1,x,y+2*m);//赋值右上角cal(a,n-1,x+m,y+m);//赋值中间cal(a,n-1,x+2*m,y);//赋值左下角cal(a,n-1,x+2*m,y+2*m);//赋值右下角}void print(char[][] a){//打印,注意格式问题,每行后面不能有多余的空格for(int i=0;i<a.length;i++){for(int j=a[i].length-1;;j--){if(a[i][j] == 'X'){break;}a[i][j]='!';}}for(int i=0;i<a.length;i++){for(int j=0;j<a[i].length;j++){if(a[i][j] == '!'){break;}System.out.print(a[i][j]);}System.out.println();}System.out.println("-");}public static void main(String[] args) {Scanner in=new Scanner(System.in);Main main=new Main();int n=0;while((n=in.nextInt()) != -1){int size=(int) Math.pow(3, n-1);char[][] a=new char[size][size];for(int i=0;i<a.length;i++){//赋初值Arrays.fill(a[i], ' ');}main.cal(a,n,0,0);//递归赋值main.print(a);//打印}}}
- 分形【分治递归】
- 递归分治
- 递归分治
- POJ 2083 Fractal (分形&分治)
- 递归分治-递归
- 递归与分形图案
- 递归与分治策略
- 分治递归排序
- 递归与分治策略
- 分治法和递归
- 棋盘覆盖(分治-递归)
- 递归和分治:poj2299
- 递归和分治
- java递归分治算法
- 分治与递归
- 递归和分治
- 递归与分治策略
- 递归与分治策略
- MVC,MVP 和 MVVM 的图示
- Activiti的后台自动生成数据库表介绍
- jQuery选择器
- Linux学习笔记之系统管理
- 【读书笔记】大规模Web开发技术(第十六章 part2)
- 分形【分治递归】
- Tomcat之启动优化
- MinGW64的使用
- Python进阶(五十三)-Flask Web开发实现将表单渲染成HTML
- 百思不得姐(4.5.6)最新版高仿
- 格雷码(多种方法)
- Android的消息机制
- 开发工具清单
- WEB测试-qps测试