¿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;
}
}