Sto uscendo pazzo, non riesco a capire perché questa classe, che restituisce true solo se il numero passato è un numero triangolare http://it.wikipedia.org/wiki/Numero_triangolare;
La mia classe funziona per tutti i numeri tranne che per il tre...
ma non capisco perchè.
Codice: Seleziona tutto
package testVari;
public class NumeroTriangolare {
private int numeroTriangolare;
NumeroTriangolare(int t){
numeroTriangolare=t;
}
public boolean verificaNumeroTriangolare() {
//if (numeroTriangolare<= 3)throw new RuntimeException("Il numero deve essere maggiore di tre");
boolean a= true;
int s=0;
int risultato=1;
for(int k=1; k!=numeroTriangolare; k++){
if (risultato==numeroTriangolare){
a= true;
}
else{
s=k;
s++;
risultato=(k*s)/2;
a= false;
}
}
return a;
}
}Codice: Seleziona tutto
public class StartTest {
public static void main(String[] args) throws InterruptedException {
NumeroTriangolare a = new NumeroTriangolare(6);
System.out.println(a.verificaNumeroTriangolare());
}
}
