Pages: [1]   Go Down
Print
Author Topic: Piccolo problema(metodi)  (Read 630 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
atrix0ne
Forumista
***
Offline Offline

Posts: 607


homo faber fortunae suae


« on: 24-02-2009, 16:51:08 »

come lo rendo accettabile da un array frastagliato?
Code:
/*Scrivere un metodo che prenda in input un array bidimensionale frastagliato A di long, e restituisca
un boolean che indichi se esistono due righe non consecutive in A contenenti rispettivamente due
elementi uguali (anche in colonne differenti).*/
public class Es
  {
  public static boolean metodo(long [][] A)
   {
   int r,r1,c,c1=0;
   int cont=0;
   for(r=0;r<A.length;r++)
     {
     for(r1=r+1;r1<A.length;r1++)
       {
       cont=0;
       for(c=0;c<A[0].length;c++)
         {
         for(c1=0;c1<A[0].length;c1++)
           {
           if(A[r][c]==A[r1][c1])
             {
             cont++;
             }
           if(cont==2)
             {
             return true;
             }
           }
         }
       }
     }
   return false;
   }
     public static void main (String[]args)
  {
    int riga=4;
    int colonna=4;
    long m[][]= {     {1,2, 3, 4},
                     {5, 6, 7, 8},
                     {1,2,11, 12},
                     {13,14,15,16},
                  };
    int i,j;

    for(i=0;i<riga;i++)
      {
        System.out.println();
        for(j=0;j<colonna;j++)
          System.out.print(m[i][j]+" ");
      }

    System.out.println();

    System.out.println(metodo(m));
  }
}
Logged

thomas89
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 341



« Reply #1 on: 24-02-2009, 18:36:12 »

Prova con questo:
Code:
public class eser
{
public static boolean metodo(int [][] A)
  {
int r,c,c1,r1=0;
  for(r=0;r<A.length;r++)
    {
    for(c=0;c<A[0].length;c++)
      {
      for(r1=0;r1<A.length;r++)
        {
            if(r1 == r)
            {
                for(c1=c+1;c1<A[0].length;c1++)
                {
                    if(A[r][c]==A[r1][c1]) return true;
                }
            }
            else
            {
                for(c1=0;c1<A[0].length;c1++)
                {
                    if(A[r][c]==A[r1][c1]) return true;
                }
            }
        }
      }
    }
  return false;
  }

    public static void main (String[]args)
  {
    int riga=4;
    int colonna=4;
    int m[][]= {     { 1, 2, 3, 4},
                     { 5, 6, 7, 8},
                     { 9,10,11,12},
                     {13,14,15,16},
                  };
    int i,j;

    for(i=0;i<riga;i++)
      {
        System.out.println();
        for(j=0;j<colonna;j++)
          System.out.print(m[i][j]+" ");
      }

    System.out.println();

    System.out.println(metodo(m));
  }
}
Logged

Solo due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi.
Pages: [1]   Go Up
Print
Jump to: