Gushghoj

FindSumm

Dec 3rd, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.39 KB | None | 0 0
  1. public class Main {
  2.     static final int summ = 33;
  3.     static final int max = 21;
  4.     static final int min = 1;
  5.     static final int varcount = 3;
  6.     static final int maxlen = 3 * (max - (summ - max - min)) * (max - (summ - max - min));
  7.  
  8.     static int[][] array = new int[maxlen][varcount];
  9.     static int cursor = 0;
  10.  
  11.     public static void main(String[] args) {
  12.         findsumm(0, 0, 0);
  13.     }
  14.  
  15.     static void findsumm(int a, int b, int c) {
  16.         switch (c) {
  17.         case 0:
  18.             if (a == 0)
  19.                 for (int i = min; i < max; i++)
  20.                     findsumm(i, 0, 0);
  21.             else if (b == 0)
  22.                 for (int i = min; i < max; i++)
  23.                     findsumm(a, i, 0);
  24.             else if (c == 0)
  25.                 for (int i = min; i < max; i++)
  26.                     findsumm(a, b, i);
  27.             break;
  28.         default:
  29.             if ((a + b + c == summ) && checkarray(a, b, c)) {
  30.                 array[cursor][0] = a;
  31.                 array[cursor][1] = b;
  32.                 array[cursor][2] = c;
  33.                 cursor++;
  34.                 System.out.println(cursor + ": " + a + " + " + b + " + " + c + " = " + summ);
  35.             }
  36.             break;
  37.         }
  38.     }
  39.  
  40.     static boolean checkarray(int a, int b, int c) {
  41.         boolean t = true;
  42.         t = t & check(a, b, c);
  43.         t = t & check(a, c, b);
  44.         t = t & check(b, a, c);
  45.         t = t & check(b, c, a);
  46.         t = t & check(c, a, b);
  47.         t = t & check(c, b, a);
  48.         return t;
  49.     }
  50.  
  51.     static boolean check(int a, int b, int c) {
  52.         for (int i = 0; i < cursor; i++)
  53.             if ((array[i][0] == a) & (array[i][1] == b) & (array[i][2] == c))
  54.                 return false;
  55.         return true;
  56.     }
  57. }
Add Comment
Please, Sign In to add comment