/**
@author Cesar Vasquez & Nadia Herrera
@version 2.0 16-11-05
*/
package src.servidor;
import java.util.HashMap;
/**
Clase encargada de realizar la sumatoria.
Previamente, revisa si el numero fue calculado anteriormente.
*/
public class Tabla
{
private int suma;
private HashMap lista;
/**
Metodo constructor de la clase Tabla
Crea un objeto HashMap para guardar los calculos anteriores.
*/
public Tabla()
{
lista = new HashMap();
}
/**
Metodo sumatoria, encargado de calcular la sumatoria.
@param n Entero al cual hay que procesar.
@return Retorna el resultado de la sumatoria
*/
public int sumatoria(int n)
{
System.out.println("... calcular sumatoria desde 1 hasta " + n + " ...");
int suma = 0;
if(n%2 != 0)
suma = ((n + 1) * ((n - 1) / 2) + ((n + 1) / 2));
else
suma = ((n + 1) * (n / 2));
lista.put(new Integer(n), new Integer(suma) );
return suma;
}
/**
Metodo encargado de revisar si el numero fue calcula con
anterioridad, en cuyo caso, dicho calculo es retornado.
@param valor Entero al cual hay que procesar.
@return Retorna el resultado de la sumatoria, si es que ya
fue calculado. Si nunca fue calculado, retorna -1.
*/
public int buscarAnteriores(int valor)
{
Integer numero = new Integer(valor);
if(lista.containsKey(numero))
return lista.get(numero);
else
return -1;
}
}