Advertisement
Josif_tepe

Untitled

Jun 16th, 2025
340
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.75 KB | None | 0 0
  1. import java.util.TreeSet;
  2.  
  3. class MnozicaZnakov extends TreeSet<Character> {
  4.     @Override
  5.     public boolean add(Character c) {
  6.         if(c.charValue() >= '0' && c.charValue() <= '9') {
  7.             return super.add(c);
  8.         }
  9.         return false;
  10.     }
  11. }
  12.  
  13. public class Naloga12 {
  14.     static char[][] mat = new char[9][9];
  15.  
  16.     static char checkRow(char[][] mat, int i) {
  17.         MnozicaZnakov mz = new MnozicaZnakov();
  18.         for(int j = 0; j < mat.length; j++) {
  19.             if(mat[i][j] != '0' && mz.add(mat[i][j]) == false) {
  20.                 return mat[i][j];
  21.             }
  22.         }
  23.         return 0;
  24.     }
  25.  
  26.     static char checkColumn(char[][] mat, int j) {
  27.         MnozicaZnakov mz = new MnozicaZnakov();
  28.         for(int i = 0; i < mat.length; i++) {
  29.             if(mat[i][j] != '0' && mz.add(mat[i][j]) == false) {
  30.                 return mat[i][j];
  31.             }
  32.         }
  33.         return 0;
  34.     }
  35.  
  36.     static char checkSquare(char[][] mat, int i, int j) {
  37.         MnozicaZnakov mz = new MnozicaZnakov();
  38.  
  39.         for(int a = 0; a < 3; a++) {
  40.             for(int b = 0; b < 3; b++) {
  41.                 if(mat[i * 3 + a][j * 3 + b] != '0' && !mz.add(mat[i * 3 + a ][j * 3 + b])) {
  42.                     return mat[i * 3 + a][j * 3 + b];
  43.                 }
  44.             }
  45.         }
  46.         return 0;
  47.     }
  48.  
  49.     public static void main(String[] args) {
  50.         String s = args[0];
  51.  
  52.         for(int i = 0; i < s.length(); i++) {
  53.             mat[i / 9][i % 9] = s.charAt(i);
  54.         }
  55.        
  56.         for(int i = 0; i < mat.length; i++) {
  57.             for(int j = 0; j < mat[i].length; j++) {
  58.                 if(mat[i][j] != '0') {
  59.                     System.out.print(mat[i][j] + " ");
  60.                 }
  61.                 else {
  62.                     System.out.print("* ");
  63.                 }
  64.                
  65.             }
  66.             System.out.println();
  67.         }
  68.    
  69.  
  70.     for(int i = 0; i < 9; i++) {
  71.         int broj = checkRow(mat, i);
  72.         if(broj != 0) {
  73.             System.out.printf("Napaka v vrstici %d (znak %c)", i + 1, broj);
  74.             return;
  75.         }
  76.     }
  77.    
  78.     for(int j = 0; j < 9; j++) {
  79.         int broj = checkColumn(mat, j);
  80.         if(broj != 0) {
  81.             System.out.printf("Napaka v stolpcu %d (znak %c)", j + 1, broj);
  82.             return;
  83.         }
  84.     }
  85.    
  86.     for(int i = 0; i < 3; i++) {
  87.         for(int j = 0; j < 3; j++) {
  88.             int broj = checkSquare(mat, i, j);
  89.             if(broj != 0) {
  90.                 System.out.printf("Napaka v kvadratu (%d, %d) (znak %c)", i + 1, j + 1, broj);
  91.                 return;
  92.             }
  93.         }
  94.     }
  95.     System.out.println("OK!");
  96.     // 507200090006030701400000060100490007000508000800027005070000009209080600040009308
  97. }
  98. }
  99.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement