折纸折痕问题
题目描述:
将一张纸连续对折n次,从上到下依次打印折痕的类型(分为凹凸两个类型)
解析:
* 对于第1次对折会在中间出现一个凹折痕迹
* 对于之后次数的对折,会在上一次折合的上方出现一个凹折痕,下方出现一个凸折痕
*
* 所以可以把该模型转换为二叉树:
* 在每棵树的左子树加上凹折痕,右子树加上凸折痕,中序遍历即可得到结果
代码:
1 public static void printProcess(int N) { 2 process(1,N,true); 3 } 4 5 public static void process(int i,int N,boolean down) { 6 if (i > N) {//超过树的层数 7 return; 8 } 9 process(i + 1,N,true); 10 System.out.print(down == true ? "凹":"凸"); 11 process(i + 1,N,false); 12 }