Guest User

Untitled

a guest
Jul 16th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. import java.util.ArrayList;
  2.  
  3.  
  4. public class DumbFibonacci extends ActivationRecord{
  5. int temp=0;
  6. public DumbFibonacci(ArrayList<Integer> arr){
  7.  
  8. currentLine = 1;
  9. arglist = arr;
  10. }
  11.  
  12. void methodBody(){
  13.  
  14. switch(currentLine){
  15. case 1: {
  16. lineOne(arglist.get(0));
  17. break;
  18. }
  19. case 2: {
  20. lineTwo(arglist.get(0));
  21. break;
  22. }
  23. case 3: {
  24. lineThree(arglist.get(0));
  25. break;
  26. }
  27. case 4: {
  28. lineFour(arglist.get(0));
  29. break;
  30. }
  31. case 5: {
  32. System.out.println("popping DumbFibonacci(" + arglist.get(0) + ") with result = " + result);
  33. endProcess(); // pop this call from the stack
  34. break;
  35. }
  36. default: {
  37. break;
  38. }
  39. }
  40. }
  41.  
  42. void lineOne(int k){
  43. System.out.println("pushing DumbFibonacci(" + k + ")");
  44. if (k <= 1) {
  45. currentLine = 5; // base case - exit
  46. result = 1;
  47. }
  48. else currentLine++; // or continue to next line
  49. }
  50.  
  51. void lineTwo(int count) {
  52. ArrayList<Integer> arr = new ArrayList<Integer>(3);
  53. arr.add(count-2);
  54. callingStack.push(new DumbFibonacci(arr));
  55. currentLine++; // on to next line
  56. }
  57.  
  58. void lineThree(int count) {
  59. this.temp=result;
  60. ArrayList<Integer> arr = new ArrayList<Integer>(3);
  61. arr.add(count-1);
  62. callingStack.push(new DumbFibonacci(arr));
  63. currentLine++;
  64. }
  65.  
  66. void lineFour(int count) {
  67. result=this.result + temp;
  68. currentLine++; // on to next line
  69. }
  70.  
  71. public static void main(String [] args){
  72. ProcessStack ps = new ProcessStack();
  73. ArrayList<Integer> arr = new ArrayList<Integer>(3);
  74. arr.add(4);
  75. DumbFibonacci ft = new DumbFibonacci(arr);
  76. ps.workStack(ft);
  77. }
  78. }
Add Comment
Please, Sign In to add comment