折纸问题

折纸的次数 ------ 从上到下的折痕

本质上是中序遍历的问题,因为每一次在已有的折痕后折的时候,当前折痕上的折痕一定为凹,当前折痕下的折痕一定为凸。实际模拟了一个不存在的二叉树结构的中序遍历。

注:折纸折几次整颗二叉树就有多少层

java 复制代码
package binarytree;

public class PaperFolding {

    //i为当前层数,n为折纸次数
    //down==true为凹,down==false为凸
    public static void printProcess(int i, int n, boolean down) {
        if (i > n) {//整颗二叉树i==n
            return;
        }

        printProcess(i + 1, n, true);//凹

        //中序遍历,第二次遍历时打印
        if (down == true) {
            System.out.print("凹");
        } else {
            System.out.print("凸");
        }

        printProcess(i + 1, n, false);//凸
    }


    public static void main(String[] args) {
        int n = 3;
        printProcess(1, n, true);//从第一层开始,第一个折痕为凹痕
    }

}
相关推荐
迷途之人不知返7 小时前
Stack & Queue
c++·算法
没文化的阿浩7 小时前
【数据结构】排序(2)——直接选择排序、堆排序
数据结构·算法·排序算法
ytttr8738 小时前
基于libusb的用户空间UVC相机库
算法
bybitq8 小时前
Reactor 模型 vs Proactor 模型:区别与代码示例
算法
jimy18 小时前
C 语言的 static 关键字作用
c语言·开发语言·算法
七颗糖很甜8 小时前
基于IRI-2016模型计算电子密度、TEC、foF2等参数的技术原理与代码实现
大数据·python·算法
风筝在晴天搁浅8 小时前
LeetCode 143.重排链表
算法·leetcode·链表
碧海银沙音频科技研究院8 小时前
如何彻底关闭360壁纸
人工智能·深度学习·算法
sali-tec8 小时前
C# 基于OpenCv的视觉工作流-章57-人脸识别
图像处理·人工智能·opencv·算法·计算机视觉
计算机安禾8 小时前
【Linux从入门到精通】第43篇:I/O调度算法与磁盘性能优化
linux·算法·性能优化