折纸折痕问题

题目描述:
将一张纸连续对折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     }

 

posted @ 2022-04-15 20:40  jue1e0  阅读(152)  评论(0)    收藏  举报