Metodo non restituisce risultato

di il
3 risposte

Metodo non restituisce risultato

Salve, ho il seguente metodo che quando viene lanciato non mi restituisce niente, cioè la console rimane vuota.
Non capisco perché, ho fatto le prove "a mano" e con k=1 dovrebbe restituire 0, con k=2 dorebbe restituire 1 e con k=3 dovrebbe restituire 0.
Se qualcuno mi sapesse spiegare il problema gliene sarei molto grato.

int findQ (int k) {
	int r = (int) Math.floor(Math.sqrt( 2*k + Math.sqrt(2*k) )) ;
	int q = 0 ;
	while ( q < r ) {
		if ( q != 0.5*(r*(r+1))-k ) {
			q += 1 ;
		}
	}
	return q ;
}

3 Risposte

  • Re: Metodo non restituisce risultato

    alefede96 ha scritto:


    Salve, ho il seguente metodo che quando viene lanciato non mi restituisce niente, cioè la console rimane vuota.
    Sono da smartphone ora e non posso provare il codice (magari stasera).
    Ma ad ogni modo, il metodo in sé non stampa nulla, devi stampare tu il risultato.
  • Re: Metodo non restituisce risultato

    Ok, ho guardato meglio il codice ora che sono a casa. E ... beh, è chiaro: se passi k=1, il valore di r è 1, siccome 0 < 1, la condizione del while è true, quindi si entra nel ciclo. Ma la condizione del if è false perché 0 != 0.0 è ovviamente false.
    In sostanza: il tuo codice si "impalla" perché ripete il ciclo all'infinito.

    Ora, non ho assolutamente idea di quale logica/algoritmo stai cercando di fare. Dovresti valutare meglio tu ...
  • Re: Metodo non restituisce risultato

    Grazie mille, ancora una volta ho fatto un errore stupido ma non riuscivo a vederlo...
Devi accedere o registrarti per scrivere nel forum
3 risposte