Each step adds the extracted digit to the sum, forming 1 + 2 + 3 + 4 + 5 = 15
Recursive Sum of Digits for 12345
Note: Instead of if (n == 0) return 0;, we can use if (n < 10) return n;, eliminating extra function calls for single-digit numbers without changing the output.
C++
// Recursive C++ program to find sum of digits // of a number #include<bits/stdc++.h>usingnamespacestd;// Function to check sum of digit using recursion intsum_of_digit(intn){if(n==0)return0;return(n%10+sum_of_digit(n/10));}// Driven code intmain(){intnum=12345;intresult=sum_of_digit(num);cout<<result<<endl;return0;}
C
// Recursive C program to find sum of digits // of a number#include<stdio.h>// Function to check sum of digit using recursionintsum_of_digit(intn){if(n==0)return0;return(n%10+sum_of_digit(n/10));}// Driven Program to check aboveintmain(){intnum=12345;intresult=sum_of_digit(num);printf("%d",result);return0;}
Java
importjava.io.*;classGfG{// Function to check sum // of digit using recursionstaticintsum_of_digit(intn){if(n==0)return0;return(n%10+sum_of_digit(n/10));}// Driven Program to check abovepublicstaticvoidmain(Stringargs[]){intnum=12345;intresult=sum_of_digit(num);System.out.println(result);}}
Python
# Function to check sum of# digit using recursiondefsum_of_digit(n):ifn==0:return0return(n%10+sum_of_digit(int(n/10)))# Driven code to check abovenum=12345result=sum_of_digit(num)print(result)
C#
usingSystem;classGfG{// Function to check sum // of digit using recursionstaticintsum_of_digit(intn){if(n==0)return0;return(n%10+sum_of_digit(n/10));}// Driven Program to check abovepublicstaticvoidMain(){intnum=12345;intresult=sum_of_digit(num);Console.WriteLine(result);}}
JavaScript
// Function to check sum of digit using recursion functionsum_of_digit(n){if(n==0)return0;return(n%10+sum_of_digit(parseInt(n/10)));}// Driven code varnum=12345;varresult=sum_of_digit(num);console.log(result);
Output
15
Besides writing (n==0 , then return 0) in the code given above we can also write it in this manner , there will be no change in the output .
if (n <1 0) return n; by writing this there will be no need to call the function for the numbers which are less than 10
Time Complexity: O(log10n), Traverse through all the digits, as there are log10n bits. Auxiliary Space: O(log10n), due to recursive function calls stored in the call stack.