Originariamente inviato da merloMT
E' la prima volta che mi trovo a lavorare con il tipo BOOLEAN e sono un pò disorientato, puoi spiegarmi come ragionare in questi casi?
Stando a Wikipedia, il quadrato perfetto "è un numero intero che può essere espresso come il quadrato di un altro numero intero".

Quindi il metodo dovrebbe avere come parametro un int e restituire un boolean, per indicare se il valore è un quadrato perfetto o no (condizione booleana sì/no appunto).

Il test è banale. Calcoli la radice quadrata, questo valore lo ottieni come double ma lo devi convertire ad int. Di questo valore int ne fai il quadrato. Se coincide con il valore iniziale, è un quadrato perfetto. La comparazione dà già un valore boolean che puoi restituire.

Esempio:
input di 50:
radice quadrata = 7,07106....blabla....

Non puoi fare il quadrato di questo .... altrimenti otterresti praticamente lo stesso valore iniziale!!! (e anzi, non è detto che ottieni esattamente lo stesso identico valore ... per questioni di errori sulle operazioni floating-point).

Devi convertirlo a int, quindi 7 e poi fai il quadrato: 7 x 7 = 49. Diverso da 50, quindi non è un quadrato perfetto!!