Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.swing.*;
- import java.util.Arrays;
- import java.util.Scanner;
- public class Main {
- static int knightDialer(int N) {
- int sum = 0;
- for(int i=1;i<=9;i++) {
- if( i != 8) {sum = sum+RecursiveKnightDialer(i,N);}
- }
- return sum;
- }
- static int RecursiveKnightDialer(int N, int number) {
- if(number == 1) {
- return 1;
- }
- if (number == 0) {
- return 0;
- }
- if(N == 1) return RecursiveKnightDialer(6,number-1) + RecursiveKnightDialer(8,number-1);
- if(N == 2) return RecursiveKnightDialer(7,number-1) + RecursiveKnightDialer(9,number-1);
- if(N == 3) return RecursiveKnightDialer(8,number-1) + RecursiveKnightDialer(4,number-1);
- if(N == 4) return RecursiveKnightDialer(3,number-1) + RecursiveKnightDialer(9,number-1) + RecursiveKnightDialer(0,number-1);
- if(N == 5) return 0;
- if(N == 6) return RecursiveKnightDialer(7,number-1) + RecursiveKnightDialer(1,number-1) + RecursiveKnightDialer(0,number-1);
- if(N == 7) return RecursiveKnightDialer(2,number-1) + RecursiveKnightDialer(6,number-1);
- if(N == 8) return RecursiveKnightDialer(1,number-1) + RecursiveKnightDialer(3,number-1);
- if(N == 9) return RecursiveKnightDialer(4,number-1) + RecursiveKnightDialer(2,number-1);
- if(N == 0) return RecursiveKnightDialer(4,number-1) + RecursiveKnightDialer(6,number-1);
- return 0;
- }
- public static void main(String[] args) {
- Scanner scan = new Scanner(System.in);
- int number = scan.nextInt();
- System.out.println(knightDialer(number));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement