1. 描述
请把一张纸条竖着放在桌子上,然后从纸条的下边向上方对折1次,压出折痕展开,此时折痕是凹下去的,即折痕突起的方向指向纸条的背面,如果从纸条的下边向上方连续对拆次,压出的折痕后展开 此时有三条折痕,从上到下依次是下折痕,下折痕和上折痕 。给定一个输入参数N 代表纸条都从下边向上方连续对折N次 请从上到下打印所有折痕的方向
示例 1
输入1
输了
[“down”]
示例2
输入2
输入出
[“down”,”down”,”up”]
2. 思路
一开始看的时候,觉得应该是找规律。。
后面枚举了几轮之后,发现有点接近“树“的数据结构
本题解正是循着这种思路做的
3. 题解
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
/**
* @Author: weng
* @Date: 2022/4/23
* @Description: other
*
* 找了张纸巾,折着折着就悟了
*/
public class ZheZhi2 {
static int n;
static List<String> ans = new ArrayList<>();
final static String DOWN = "down";
final static String UP = "up";
static void init(){
Scanner scanner = new Scanner(System.in);
n = scanner.nextInt();
scanner.close();
}
static void zheZhi(int level,String value){
if(level == n){
return;
}
zheZhi(level +1,DOWN);
ans.add(value);
zheZhi(level+1,UP);
}
public static void main(String[] args) {
init();
zheZhi(0,DOWN);
System.out.println(ans);
}
}