Inter5 Inviato 18 Febbraio 2016 Segnala Condividi Inviato 18 Febbraio 2016 4. Considerate il seguente metodo ricorsivo: public static String f( String s ) { if ( s.length() == 0 ) return s else return ( s.charAt( 0 ) == ’a’ ? "*" : "+" ) + f( s.substring( 1 ) ); } Quale sarà il valore restituito dall’invocazione f( "cabala" ) Qualcuno riesce a darmi una mano? Link al commento Condividi su altri siti Altre opzioni di condivisione...
Jittox Inviato 18 Febbraio 2016 Segnala Condividi Inviato 18 Febbraio 2016 s.charAt( 0 ) == ’a’ ? "*" : "+" è detto operatore ternario, se non lo conosci lo puoi cercare in rete. La funziona sostituisce ogni carattere con * o +, se il carattere è a diventa *. quindi cabala diventa "+*+*+*" -------------------------------------- iMac 27" Core i5-750 2.66Ghz / Ati Radeon 4850 HD -------------------------------------- Link al commento Condividi su altri siti Altre opzioni di condivisione...
Inter5 Inviato 19 Febbraio 2016 Autore Segnala Condividi Inviato 19 Febbraio 2016 Grazie mille @Jittox,è come ho pensato io.per caso sapresti aiutarmi anche in questo? public static int f( int n ) { return n == 0 ? 1 : 2 * f( n - 1 ); } Quale valore sarà restituito nelle seguenti invocazioni? f( 30 ) =?f(35)=?so che anche questo è facile, ma ho le soluzioni e non coincidono con quello che ho pensato io, e non riesco a capire come mai.a me verrebbe nel primo caso 2*29 e nel secondo caso 2*34 mentre nelle soluzioni dice nel primo caso 2^30 e nel secondo caso 2^35 Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.