Método java que calcula la suma de dos números enteros de
forma recursiva.
La solución recursiva para sumar dos números enteros se
basa en lo siguiente:
Caso
Base:
Si uno de los números es igual a cero, la suma es el otro
número.
Por ejemplo, si queremos sumar a=3 y b=0 la suma es igual
a a: suma=3
si a == 0
la suma es b
sino si b == 0
la suma es
a
Procedimiento
recursivo:
Si ninguno de los dos números a sumar es igual a cero, la
suma de ambos la podemos expresar como:
suma = 1 + suma(a, (b-1))
Por ejemplo:
Dados los números a=3 y b =4
la suma de 3 + 4 es igual que sumar 1 + (3 + 3)
A su vez, sumar 3 + 3 es igual que 1 + (3 + 2)
Si repetimos el proceso hasta que b sea 0 obtendremos la
suma de forma recursiva:
El código
del método es el siguiente:
/*
* Método recursivo que calcula la suma de dos números enteros
*/
public static int suma(int a, int b) {
if (b == 0) {
return a;
} else if (a == 0) {
return b;
} else {
return 1 + suma(a, b - 1);
}
}
Como ejemplo de uso vamos a escribir un programa que lee
dos números enteros y muestra la suma utilizando el método recursivo:
import java.util.*;
public class Recursividad1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n1, n2;
System.out.print("Introduzca primer numero: ");
n1 = sc.nextInt();
System.out.print("Introduzca segundo numero: ");
n2 = sc.nextInt();
System.out.println("suma: " + suma(n1, n2));
}
public static int suma(int a, int b) {
if (b == 0) {
return a;
} else if (a == 0) {
return b;
} else {
return 1 + suma(a, b - 1);
}
}
}
private static int sumar2(int num1,int num2){
ResponderEliminarif(num1==0)
return num2;
else{
if(num2!=0)
return sumar2(num1,num2-1)+1;
else
return sumar2(num1-1,num2)+1;
}
}f
tu código está mucho mejor, con el anterior me marcaba varios errores, gracias.
Eliminarel primero marcaba error porque faltaba cerra con un }
EliminarAl final de cuentas es lo mismo solo basta con hacer la prueba de escritorio para comprender que si el número menor de los 2 ingresados llega a 0 retorna el mayor y viceversa, cuando esto pasa rompe el proceso de recursividad y retorna el valor mayor ingresado que puede ser a o b y comienza a incrementar de uno desde el valor mayor sumando adicionalmente 1
Eliminargracias amig me sirvio muchicimo
ResponderEliminarme alegro de que te haya servido de ayuda ;)
EliminarMuchas gracias por el ejemplo! :D
ResponderEliminarCOMO HAGO UN PROGRAMA QUE IMPLEMENTE LA UN FUNCIÓN RECURSIVA
ResponderEliminarF(N)=3F(N-1)+F(N-2)
F(N-1) N ES PAR
N N<=0
me pueden hacer el favor de decirme para que sirve .. import java .io.x
ResponderEliminarpara poder trabajar con entradas y salidas de datos
EliminarDiseñar un Programa en JAVA, que permita calcular y mostrar el Producto (n*n-1*n-2*n-3*…… 4*3*2*1) de un Número entero “n” que debe ser ingresado por teclado (Utilice una sola clase y TEXTPAD y debe utilizar obligatoriamente un método recursivo (Llamada a él mismo)
ResponderEliminares la llibreria para leer datos por teclado io=input y out entrada y salida de datos
ResponderEliminarcomo puedo crear un programa utilizando la recursividad para obtener la suma total de números, estos son almacenados en un acumulador, mostrar la suma total cuando el usuario capture el valor de 0
ResponderEliminarImplemente un método recursivo en Java que determine si un valor está o no contenido
ResponderEliminaren un árbol y calcule su complejidad algorítmica.
demasiado god
ResponderEliminargracias profe
ResponderEliminar