summaryrefslogtreecommitdiff
path: root/in_class/cse123-inclass9/RecursiveMystery.java
blob: c4f98065ae4e0c13e494796010e118fbd0a6c65d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class RecursiveMystery {
    public static void main(String[] args) {
        // mystery1(3);
        // mystery2(4);
        mystery3("taco");
    }

    public static void mystery1(int n) {
        if (n <= 1) {
            System.out.print(n);
        } else {
            mystery1(n / 2);
            System.out.print(", " + n);
        }
    }

    public static void mystery2(int n) {
        if (n <= 0) {
            System.out.print("*");
        } else if (n % 2 == 0) {
            System.out.print("(");
            mystery2(n - 1);
            System.out.print(")");
        } else {
            System.out.print("[");
            mystery2(n - 1);
            System.out.print("]");
        }
    }

    public static void mystery3(String str) {
        if (!str.isEmpty()) {
            System.out.print(str.charAt(0));
            mystery3(str.substring(1));
            System.out.print(str.charAt(0));
        }
    }
}