A logo showing the text blog.marcnuri.com
English
Inicio»Java»Funciones recursivas en Java // Empleando recursión para sumar un array de números

Entradas Recientes

  • Fabric8 Kubernetes Client 7.2.0 está disponible!
  • Conectarse a un servidor MCP con JavaScript y AI SDK
  • Conectarse a un servidor MCP con JavaScript y LangChain.js
  • El Futuro de las Herramientas para Desarrolladores en la era de la IA
  • Conectarse a un servidor Model Context Protocol (MCP) con Java y LangChain4j

Categorías

  • Antiguo
  • Front-end
  • Go
  • Herramientas
  • Industria y negocios
  • Inteligencia Artificial
  • Java
  • JavaScript
  • Operaciones
  • Personal
  • Proyectos personales

Archivos

  • mayo 2025
  • abril 2025
  • marzo 2025
  • febrero 2025
  • enero 2025
  • diciembre 2024
  • noviembre 2024
  • agosto 2024
  • junio 2024
  • mayo 2024
  • abril 2024
  • marzo 2024
  • febrero 2024
  • enero 2024
  • diciembre 2023
  • noviembre 2023
  • octubre 2023
  • septiembre 2023
  • agosto 2023
  • julio 2023
  • junio 2023
  • mayo 2023
  • abril 2023
  • marzo 2023
  • febrero 2023
  • enero 2023
  • diciembre 2022
  • noviembre 2022
  • octubre 2022
  • agosto 2022
  • julio 2022
  • mayo 2022
  • marzo 2022
  • febrero 2022
  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021
  • agosto 2021
  • julio 2021
  • diciembre 2020
  • octubre 2020
  • agosto 2020
  • junio 2020
  • mayo 2020
  • marzo 2020
  • febrero 2020
  • enero 2020
  • noviembre 2019
  • octubre 2019
  • julio 2019
  • diciembre 2018
  • agosto 2018
  • julio 2018
  • junio 2018
  • mayo 2018
  • marzo 2018
  • febrero 2018
  • noviembre 2017
  • octubre 2017
  • agosto 2017
  • julio 2017
  • enero 2017
  • julio 2016
  • enero 2016
  • diciembre 2015
  • noviembre 2015
  • diciembre 2014
  • marzo 2014
  • febrero 2011
  • junio 2008
  • mayo 2008
  • abril 2008
  • enero 2008
  • junio 2007
  • mayo 2007
  • abril 2007
  • marzo 2007

Funciones recursivas en Java // Empleando recursión para sumar un array de números

2007-04-18 en Java / Antiguo etiquetado Java / Programación / Recursividad por Marc Nuri | Última actualización: 2023-10-27
English version

La recursión o recursividad es uno de los métodos en ciencias de la computación que se pueden utilizar para resolver un problema. Java es un lenguaje orientado a objetos muy potente que permite utilizar la recursividad. Si buscamos recursión en Wikipedia encontraremos esta definición:

Recursión, en matemáticas y ciencias de la computación, es un método para definir funciones en el cual la función que está siendo definida se aplica dentro de su propia definición.

Esto significa que una función se llamará a sí misma indefinidamente. Sin embargo, a menudo se hace de tal manera que la función se llamará a sí misma hasta que alcance una cierta condición y se detenga. Esta condición también se llama caso base.

Hay muchas páginas donde puedes encontrar grandes explicaciones sobre la teoría de la recursión. La mayoría de ellas utilizan el ejemplo de las Torres de Hanoi:

  • Cut The Knot --Towers of Hanoi--
  • Recursion --Towers of Hanoi--
  • Java Recursion with examples

En esta publicación, voy a mostrarte un ejemplo sencillo de recursión en Java. Voy a usarlo para sumar un array de números. El ejemplo ilustra lo fácil que es usar la recursión y lo útil que puede ser.

Recursion.java
import java.math.BigDecimal;

public class Recursion {

  public static void main(String[] args) {
    // Creamos el array de numeros que queremos sumar,
    // Puede ser cualquier subclase de java.lang.Number
    Number[] test = {100, 0.05d, 1391L, 88d, 99d, 0.0037, 0.05d, 0.05d, 88d, 99d, -528.15, 0.13f};
    // Llamamos a nuestra funcion recursiva
    System.out.println(sum(test));
  }

  // Esta es la funcion inicial
  // Llama a la funcion recursiva con los valores iniciales por defecto
  static Number sum(Number[] numbers) {
    if (numbers.length < 1) {
      return 0;
    }
    return sum(BigDecimal.valueOf(0), numbers, numbers.length - 1);
  }

  // La funcion recursiva
  static Number sum(BigDecimal initialValue, Number[] numbers, int location) {
    // Si hemos llegado al final del array devolvemos el resultado final (caso base)
    if (location < 0) {
      return initialValue;
    }
    // En caso contrario, llamamos a la funcion recursiva con el siguiente numero del array
    else {
      int nextLocation = location - 1;
      Number current = numbers[location];
      // Convertimos el numero actual a BigDecimal
      // Ahora podemos sumarlo al initialValue con precision (o realizar cualquier operacion aritmetica)
      return sum(initialValue.add(new BigDecimal(current.toString())), numbers, nextLocation);
    }
  }
}
Twitter iconFacebook iconLinkedIn iconPinterest iconEmail icon

Navegador de artículos
SimpleDateFormat para validar fechas de usuario // parseo de strings a fechas en JavaAplicación Java para copias de seguridad programadas de PostgreSQL usando pg_dump (Sólo Windows)
© 2007 - 2025 Marc Nuri