fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static boolean contiene(int[][] matriz, int elemento) {
  11. return encontrarNumero(matriz, 0, matriz.length-1, 0, matriz[0].length-1, elemento);
  12. }
  13.  
  14. public static boolean encontrarNumero(int[][] matriz, int f0, int fN, int c0, int cN, int elem){
  15. boolean enc = false;
  16. if (f0 == fN && c0 == cN) {
  17. return (matriz[f0][cN] == elem);
  18. }
  19. if (f0 < fN || c0 < cN) {
  20. int fk = (f0 + fN) / 2;
  21. int ck = (c0 + cN) / 2;
  22.  
  23. if (elem > matriz[fk][ck]) {
  24. // Busca en primer cuadrante
  25. enc = encontrarNumero(matriz, f0, fk, c0, ck, elem);
  26. // busca en el tercero
  27. enc = encontrarNumero(matriz, fk + 1, fN, c0, ck, elem) || enc;
  28. } else if (elem < matriz[fk][ck]) {
  29. // busca en el tercero
  30. enc = encontrarNumero(matriz, fk + 1, fN, c0, ck, elem) || enc;
  31. // busca en el segundo
  32. enc = encontrarNumero(matriz, f0, fk, ck + 1, cN, elem) || enc;
  33. // busca en el cuarto
  34. enc = encontrarNumero(matriz, fk + 1, fN, ck + 1, cN, elem)|| enc;
  35. } else if (matriz[fk][ck] == elem) {
  36. return true;
  37. }
  38. }
  39. return enc;
  40. }
  41. public static void main(String args[]) {
  42. int[][]carton= {{1, 2, 3,4,5}, {6,7,8,9,10}, {11,12,13,14,15}, {16,17,18,19,20}, {21,22,23,24,25} };
  43.  
  44. int[] buscados = { 6, 13, 35, 21, 7 };
  45.  
  46. for (int b : buscados) {
  47. System.out.println("El número "+b+" está?: "+ contiene(carton, b));
  48. }
  49. }
  50. }
Success #stdin #stdout 0.05s 711168KB
stdin
Standard input is empty
stdout
El número 6 está?: false
El número 13 está?: true
El número 35 está?: false
El número 21 está?: true
El número 7 está?: false