| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package recursive;
- import java.io.File;
- public class Recursive {
- public enum Test {
- FILE, FIBONACCI
- }
- public Recursive(Test t) {
- switch (t) {
- case FILE:
- runFileTest();
- break;
- case FIBONACCI:
- runFibonacciTest();
- break;
- }
- }
- private void runFibonacciTest() {
- System.err.println("Running recursive fibonacci test...");
- System.out.println(calcFibonacci(20));
- }
- public int calcFibonacci(int n) {
- if (n == 0)
- return 0;
- else if (n == 1)
- return 1;
- else
- return calcFibonacci(n - 1) + calcFibonacci(n - 2);
- }
- private void runFileTest() {
- System.err.println("Running recursive file test...");
- System.out.println(viewFiles("."));
- }
- private String viewFiles(String path) {
- String str = "\n";
- File folder = new File(path);
- File[] files = folder.listFiles();
- for (File f : files) {
- if (f.isDirectory())
- str += "\n" + f.getName() + "\t" + viewFiles(f.getAbsolutePath());
- else
- str += "\n\t" + f.getName();
- }
- return str;
- }
- }
|