Metodo non restituisce risultato

di alefede96 il
3 risposte
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

  • 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.
  • 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 ...
  • 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