Guest User

Untitled

a guest
Mar 22nd, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. /**
  2. * When the height is 3, the output is<br/>
  3. * "A -> B<br/>
  4. * A -> C<br/>
  5. * B -> C<br/>
  6. * A -> B<br/>
  7. * C -> A<br/>
  8. * C -> B<br/>
  9. * A -> B".
  10. */
  11. public class Hanoi {
  12.  
  13. private final int height;
  14. private final String tower1;
  15. private final String tower2;
  16. private final String tower3;
  17.  
  18. public Hanoi(final int height,
  19. final String tower1,
  20. final String tower2,
  21. final String tower3) {
  22. this.height = height;
  23. this.tower1 = tower1;
  24. this.tower2 = tower2;
  25. this.tower3 = tower3;
  26. }
  27. public Hanoi(int height) {
  28. this(height, "A", "B", "C");
  29. }
  30.  
  31. public void execute() {
  32. moveDisc(height, tower1, tower2, tower3);
  33. }
  34.  
  35. private void moveDisc(final int disk,
  36. final String source,
  37. final String dest,
  38. final String aux) {
  39. if (disk == 1) {
  40. System.out.println(String.format("%s -> %s", source, dest));
  41. }
  42. else {
  43. moveDisc(disk - 1, source, aux, dest);
  44. System.out.println(String.format("%s -> %s", source, dest));
  45. moveDisc(disk - 1, aux, dest, source);
  46. }
  47. }
  48. }
Add Comment
Please, Sign In to add comment