Java Recursion

Iniciado por josephb401, 3 Diciembre 2015, 03:09 AM

0 Miembros y 1 Visitante están viendo este tema.

josephb401

¿Puede alguien decirme cómo arreglar mi código? Dejaré las descripciones que tuve para el programa.

Escriba un método que acepta un argumento entero positivo y devuelve la suma de todos los números enteros de 1 hasta
al número pasado como argumento. Por ejemplo, si se pasa 50 como argumento, el método devolverá
la suma de 1, 2, 3, 4, .., 50.
Utilice la recursividad para calcular la suma.
Demostrar el método en un programa. (Si lo desea, puede revisar su trabajo con la fórmula n (n + 1) / 2 *,
pero usted debe escribir un método recursivo para calcular la suma.)
Mano en su clase o clases.
* Esto se llama truco de Gauss, y aquí es una versión de la historia:
Gauss contó la historia que cuando él era un niño, el maestro se quedó sin cosas para enseñar y pidió que, en
el tiempo restante antes de tiempo de juego, para calcular la suma de todos los números del 1 al 20 (o similar ...
En realidad, las cifras fueron del 1 al 40!).
Gauss pensó que 1 + 20 es 21. Y 2 + 19 también es 21. Y esto es cierto para todos los pares similares, de los cuales
hay 10. Así que ... la respuesta es 210.

public class GaussTrick
{
//public static int num = 50;
public static int count = 0;
public static int halfNum = (50 / 2);;
public static int total= 0;

public static void main(String[] args)
{

int num = 50;

System.out.print(SumOfInt(num) );

SumOfInt(num);

//count = (20 * (20+1) / 2);System.out.print(count);

}

public static int SumOfInt(int num)
{
if(num == halfNum)
return total;

num--;
count++;

total = (num + count);

SumOfInt(num);

System.out.println(total);

return total;


}

}

DarK_FirefoX

¿Y no puedes hacer?:

Código (java) [Seleccionar]
public static int SumOfInt(int num)
{
  if(num==1)
    return 1;
  return num + SumOfInt(num-1);
}


Lo que te están diciendo en la orden del ejercicio es que la respuesta la compares con el resultado de aplicar la formula:

Citar(n*n(+1))/2

Si es otra cosa lo que quieres hacer, por favor explícate mejor.

Salu2s

josephb401

muchas gracias resulviste mi problema!!!!!