Recursive.java 1.0 KB

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