Advertisement
dimipan80

C#Exams 4. Magic Strings (on Java Code)

Aug 21st, 2014
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.12 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class _4_MagicStrings {
  4.  
  5.     private static char[] letters = { 'k', 'n', 'p', 's' };
  6.  
  7.     private static int[] weightOfLetters = { 1, 4, 5, 3 };
  8.  
  9.     public static void main(String[] args) {
  10.         // TODO Auto-generated method stub
  11.         Scanner scan = new Scanner(System.in);
  12.         int diff = scan.nextInt();
  13.  
  14.         boolean foundMagicString = false;
  15.         if (diff <= 16) {
  16.             foundMagicString = findMagicString(diff);
  17.         }
  18.  
  19.         if (!foundMagicString) {
  20.             System.out.println("No");
  21.         }
  22.     }
  23.  
  24.     private static boolean findMagicString(int diff) {
  25.         // TODO Auto-generated method stub
  26.         boolean isFound = false;
  27.         int[] index = new int[8];
  28.         int firstWeight, secondWeght, diffBetween;
  29.         for (index[0] = 0; index[0] < letters.length; index[0]++) {
  30.             for (index[1] = 0; index[1] < letters.length; index[1]++) {
  31.                 for (index[2] = 0; index[2] < letters.length; index[2]++) {
  32.                     for (index[3] = 0; index[3] < letters.length; index[3]++) {
  33.                         firstWeight = weightOfLetters[index[0]]
  34.                                 + weightOfLetters[index[1]]
  35.                                 + weightOfLetters[index[2]]
  36.                                 + weightOfLetters[index[3]];
  37.                         for (index[4] = 0; index[4] < letters.length; index[4]++) {
  38.                             for (index[5] = 0; index[5] < letters.length; index[5]++) {
  39.                                 for (index[6] = 0; index[6] < letters.length; index[6]++) {
  40.                                     for (index[7] = 0; index[7] < letters.length; index[7]++) {
  41.                                         secondWeght = weightOfLetters[index[4]]
  42.                                                 + weightOfLetters[index[5]]
  43.                                                 + weightOfLetters[index[6]]
  44.                                                 + weightOfLetters[index[7]];
  45.                                         diffBetween = Math.abs(firstWeight
  46.                                                 - secondWeght);
  47.                                         if (diffBetween == diff) {
  48.                                             isFound = true;
  49.                                             printTheMagicString(index);
  50.                                         }
  51.                                     }
  52.                                 }
  53.                             }
  54.                         }
  55.                     }
  56.                 }
  57.             }
  58.         }
  59.  
  60.         return isFound;
  61.     }
  62.  
  63.     private static void printTheMagicString(int[] indexArr) {
  64.         // TODO Auto-generated method stub
  65.         StringBuilder sb = new StringBuilder();
  66.         for (int i = 0; i < indexArr.length; i++) {
  67.             char letter = letters[indexArr[i]];
  68.             sb.append(letter);
  69.         }
  70.  
  71.         System.out.println(sb.toString());
  72.     }
  73.  
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement