Advertisement
Guest User

Untitled

a guest
Nov 13th, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. import javax.swing.*;
  2.  
  3. import java.util.Arrays;
  4. import java.util.Scanner;
  5.  
  6.  
  7. public class Main {
  8. static int knightDialer(int N) {
  9. int sum = 0;
  10.  
  11. for(int i=1;i<=9;i++) {
  12. if( i != 8) {sum = sum+RecursiveKnightDialer(i,N);}
  13. }
  14. return sum;
  15. }
  16. static int RecursiveKnightDialer(int N, int number) {
  17. if(number == 1) {
  18. return 1;
  19. }
  20. if (number == 0) {
  21. return 0;
  22. }
  23. if(N == 1) return RecursiveKnightDialer(6,number-1) + RecursiveKnightDialer(8,number-1);
  24. if(N == 2) return RecursiveKnightDialer(7,number-1) + RecursiveKnightDialer(9,number-1);
  25. if(N == 3) return RecursiveKnightDialer(8,number-1) + RecursiveKnightDialer(4,number-1);
  26. if(N == 4) return RecursiveKnightDialer(3,number-1) + RecursiveKnightDialer(9,number-1) + RecursiveKnightDialer(0,number-1);
  27. if(N == 5) return 0;
  28. if(N == 6) return RecursiveKnightDialer(7,number-1) + RecursiveKnightDialer(1,number-1) + RecursiveKnightDialer(0,number-1);
  29. if(N == 7) return RecursiveKnightDialer(2,number-1) + RecursiveKnightDialer(6,number-1);
  30. if(N == 8) return RecursiveKnightDialer(1,number-1) + RecursiveKnightDialer(3,number-1);
  31. if(N == 9) return RecursiveKnightDialer(4,number-1) + RecursiveKnightDialer(2,number-1);
  32. if(N == 0) return RecursiveKnightDialer(4,number-1) + RecursiveKnightDialer(6,number-1);
  33.  
  34. return 0;
  35. }
  36. public static void main(String[] args) {
  37. Scanner scan = new Scanner(System.in);
  38. int number = scan.nextInt();
  39.  
  40. System.out.println(knightDialer(number));
  41.  
  42.  
  43. }
  44.  
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement