Recursive.java 998 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package recursive;
  2. import java.io.File;
  3. public class Recursive {
  4. public enum Test {
  5. FILE, FIBONACCI
  6. }
  7. public Recursive(Test t) {
  8. switch (t) {
  9. case FILE:
  10. runFileTest();
  11. break;
  12. case FIBONACCI:
  13. runFibonacciTest();
  14. break;
  15. }
  16. }
  17. private void runFibonacciTest() {
  18. System.err.println("Running recursive fibonacci test...");
  19. System.out.println(calcFibonacci(20));
  20. }
  21. public int calcFibonacci(int n) {
  22. if (n == 0)
  23. return 0;
  24. else if (n == 1)
  25. return 1;
  26. else
  27. return calcFibonacci(n - 1) + calcFibonacci(n - 2);
  28. }
  29. private void runFileTest() {
  30. System.err.println("Running recursive file test...");
  31. System.out.println(viewFiles("."));
  32. }
  33. private String viewFiles(String path) {
  34. String str = "\n";
  35. File folder = new File(path);
  36. File[] files = folder.listFiles();
  37. for (File f : files) {
  38. if (f.isDirectory())
  39. str += "\n" + f.getName() + "\t" + viewFiles(f.getAbsolutePath());
  40. else
  41. str += "\n\t" + f.getName();
  42. }
  43. return str;
  44. }
  45. }