Vai al contenuto

Piccolo Esercizio In Java


Inter5

Messaggi raccomandati

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

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

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

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...