Dado un número, necesitamos encontrar la suma de sus dígitos usando recursividad.
Ejemplos:
Input : 12345 Output : 15 Input : 45632 Output :20
El proceso paso a paso para una mejor comprensión de cómo funciona el algoritmo.
Sea el número 12345.
Paso 1-> 12345 % 10 que es igual a 5 + (envía 12345/10 al siguiente paso)
Paso 2-> 1234 % 10 que es igual a 4 + (envía 1234/10 al siguiente paso)
Paso 3-> 123 % 10 que es igual a 3 + (enviar 123/10 al siguiente paso)
Paso 4-> 12 % 10 que es igual a 2 + (enviar 12/10 al siguiente paso)
Paso 5 -> 1 % 10 que es igual a 1 + (enviar 1/10 al siguiente paso)
Paso 6-> 0 el algoritmo se detiene
El siguiente diagrama ilustrará el proceso de recursión
C++
// Recursive C++ program to find sum of digits // of a number #include <bits/stdc++.h> using namespace std; // Function to check sum of digit using recursion int sum_of_digit(int n) { if (n == 0) return 0; return (n % 10 + sum_of_digit(n / 10)); } // Driven code int main() { int num = 12345; int result = sum_of_digit(num); cout << "Sum of digits in "<< num <<" is "<<result << endl; return 0; } // THis code is contributed by // SHUBHAMSINGH10
C
// Recursive C program to find sum of digits // of a number #include <stdio.h> // Function to check sum of digit using recursion int sum_of_digit(int n) { if (n == 0) return 0; return (n % 10 + sum_of_digit(n / 10)); } // Driven Program to check above int main() { int num = 12345; int result = sum_of_digit(num); printf("Sum of digits in %d is %d\n", num, result); return 0; }
Java
// Recursive java program to // find sum of digits of a number import java.io.*; class sum_of_digits { // Function to check sum // of digit using recursion static int sum_of_digit(int n) { if (n == 0) return 0; return (n % 10 + sum_of_digit(n / 10)); } // Driven Program to check above public static void main(String args[]) { int num = 12345; int result = sum_of_digit(num); System.out.println("Sum of digits in " + num + " is " + result); } } // This code is contributed by Anshika Goyal.
Python3
# Recursive Python3 program to # find sum of digits of a number # Function to check sum of # digit using recursion def sum_of_digit( n ): if n == 0: return 0 return (n % 10 + sum_of_digit(int(n / 10))) # Driven code to check above num = 12345 result = sum_of_digit(num) print("Sum of digits in",num,"is", result) # This code is contributed by "Sharad_Bhardwaj".
C#
// Recursive C# program to // find sum of digits of a number using System; class GFG { // Function to check sum // of digit using recursion static int sum_of_digit(int n) { if (n == 0) return 0; return (n % 10 + sum_of_digit(n / 10)); } // Driven Program to check above public static void Main() { int num = 12345; int result = sum_of_digit(num); Console.WriteLine("Sum of digits in " + num + " is " + result); } } // This code is contributed by Anant Agarwal.
PHP
<?php // Recursive PHP program // to find sum of digits // of a number // Function to check sum of // digit using recursion function sum_of_digit($n) { if ($n == 0) return 0; return ($n % 10 + sum_of_digit($n / 10)); } // Driven Code $num = 12345; $result = sum_of_digit($num); echo("Sum of digits in " . $num . " is " . $result); // This code is contributed by Ajit. ?>
Javascript
<script> // Recursive Javascript program to find sum of digits // of a number // Function to check sum of digit using recursion function sum_of_digit(n) { if (n == 0) return 0; return (n % 10 + sum_of_digit(parseInt(n / 10))); } // Driven code var num = 12345; var result = sum_of_digit(num); document.write( "Sum of digits in "+ num +" is "+result ); </script>
Producción:
Sum of digits in 12345 is 15
Además de escribir (n==0, luego devolver 0) en el código anterior, también podemos escribirlo de esta manera, no habrá cambios en la salida.
if(n<10) return n; By writing this there will be no need to call the function for the numbers which are less than 10
Complejidad del tiempo: O(logn) donde n es el número dado.
Espacio auxiliar: O (logn) debido al espacio de pila recursivo.
Publicación traducida automáticamente
Artículo escrito por Shahnawaz_Ali y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA