Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [JAVA] Metodo con Array

    Devo creare un metodo che esegua questa funzione:
    - In entrata ho un array di interi(di dimensione sconosciuta)
    - In uscita ho solo i numeri del precedente array che hanno almeno un numero pari a sinistra e almeno un numero dispari a destra

    Esempio:

    array in entrata |1|2|4|7|9|2|5|11|4|

    array in uscita |4|7|9|2|5|

    Come posso realizzarlo???

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Così:
    codice:
    public int[] metodo(int [] a) {
       Vector v = new Vector();
       int i = 1;
       int [] temp = null;
       while (i<a.length-1) {
          if (((a[i-1] % 2) == 0) && ((a[i+1] % 2) == 1)) {
             v.add( new Integer(a[i]) );
          }
          i++;
       }
    
       i = 0;
       temp = new int[v.length()];
       while (i<v.size()) {
          temp[i] = ((Integer) v.elementAt(i)).intValue();
          i++;
       }
    
       return temp;
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    sbaglio o in uscita dovresti avere solo 4,7 e 5 ?
    Slack? Smack!

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Sì, infatti!


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    non conveniva per efficienza, cercare il primo numero pari a partire dall'inizio dell'array e il primo numero dispari a partire dalla fine dell'array e ritornare tutti gli elementi agli indici compresi con arraycopy?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Uhm... guardando il suo esempio, ora mi viene da riflettere...

    Se fosse così, sarebbe ancora più semplice:
    codice:
    public int [] metodo(int [] a) {
       int l = 0;
       int r = a.length-1;
       int [] temp;
    
       while (l<a.length || ((l%2)!=0)) l++;
       while (r>0 || ((r % 2) == 0)) r--;
    
       temp = new int[(r-l)+1];
       for (int i=0; i<temp.length; i++) temp[i] = a[l+i];
    
       return temp;
    }
    @canturio: quale delle due soluzioni è quella che cerchi?


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Grazie per le risposte!!!

    Il numero pari o il numero dispari basta che esista, non importa che siano effettivamente affianco a ciascun elemento preso in considerazione volta per volta.
    Effetivamente si può fare anche come ha detto Andrea1979, viene come nell'esempio da me postato

    (il risultato dell'array in uscita è così come l'ho copiato dal testo originale, che riportava tale esempio per spiegare il problema da risolvere)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.