Follow the below steps to solve the problem:
- Add another variable “Val” to the function and initialize it to ( Val = 0 )
- On every call to the function add the mod value (n%10) to the variable as “(n%10)+val” which is the last digit in n. Along with passing the variable n as n/10.
- So on the First call, it will have the last digit. As we are passing n/10 as n, It follows until n is reduced to a single digit.
- n<10 is the base case so When n < 10, then add the n to the variable as it is the last digit and return the val which will have the sum of digits
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using namespace std;
int sum_of_digit( int n, int val)
{
if (n < 10) {
val = val + n;
return val;
}
return sum_of_digit(n / 10, (n % 10) + val);
}
int main()
{
int num = 12345;
int result = sum_of_digit(num, 0);
cout << "Sum of digits is " << result;
return 0;
}
|
C
#include <stdio.h>
int sum_of_digit( int n, int val)
{
if (n < 10) {
val = val + n;
return val;
}
return sum_of_digit(n / 10, (n % 10) + val);
}
int main()
{
int num = 12345;
int result = sum_of_digit(num, 0);
printf ( "Sum of digits is %d" , result);
return 0;
}
|
Java
import java.io.*;
import java.lang.*;
import java.util.*;
class sum_of_digits {
static int sum_of_digit( int n, int val)
{
if (n < 10 ) {
val = val + n;
return val;
}
return sum_of_digit(n / 10 , (n % 10 ) + val);
}
public static void main(String args[])
{
int num = 12345 ;
int result = sum_of_digit(num, 0 );
System.out.println( "Sum of digits is " + result);
}
}
|
Python3
def sum_of_digit(n, val):
if (n < 10 ):
val = val + n
return val
return sum_of_digit(n / / 10 , (n % 10 ) + val)
if __name__ = = "__main__" :
num = 12345
result = sum_of_digit(num, 0 )
print ( "Sum of digits is" , result)
|
C#
using System;
class GFG {
static int sum_of_digit( int n, int val)
{
if (n < 10) {
val = val + n;
return val;
}
return sum_of_digit(n / 10, (n % 10) + val);
}
public static void Main()
{
int num = 12345;
int result = sum_of_digit(num, 0);
Console.Write( "Sum of digits is " + result);
}
}
|
Javascript
<script>
function sum_of_digit(n, val)
{
if (n < 10)
{
val = val + n;
return val;
}
return sum_of_digit(parseInt(n / 10),
(n % 10) + val);
}
let num = 12345;
let result = sum_of_digit(num, 0);
document.write( "Sum of digits is " + result);
</script>
|
Output
Sum of digits is 15
Time Complexity: O(log N)
Auxiliary Space: O(log N)
Please write comments if you find the above codes/algorithms incorrect, or find better ways to solve the same problem.
Program for Sum of the digits of a given number
Given a number, find the sum of its digits.
Input: n = 687
Output: 21
Input: n = 12
Output: 3
Follow the below steps to solve the problem:
- Get the number
- Declare a variable to store the sum and set it to 0
- Repeat the next two steps till the number is not 0
- Get the rightmost digit of the number with help of the remainder ‘%’ operator by dividing it by 10 and adding it to the sum.
- Divide the number by 10 with help of ‘/’ operator to remove the rightmost digit.
- Print or return the sum
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using namespace std;
class gfg {
public :
int getSum( int n)
{
int sum = 0;
while (n != 0) {
sum = sum + n % 10;
n = n / 10;
}
return sum;
}
};
int main()
{
gfg g;
int n = 687;
cout << g.getSum(n);
return 0;
}
|
C
#include <stdio.h>
int getSum( int n)
{
int sum = 0;
while (n != 0) {
sum = sum + n % 10;
n = n / 10;
}
return sum;
}
int main()
{
int n = 687;
printf ( " %d " , getSum(n));
return 0;
}
|
Java
import java.io.*;
class GFG {
static int getSum( int n)
{
int sum = 0 ;
while (n != 0 ) {
sum = sum + n % 10 ;
n = n / 10 ;
}
return sum;
}
public static void main(String[] args)
{
int n = 687 ;
System.out.println(getSum(n));
}
}
|
Python3
def getSum(n):
sum = 0
while (n ! = 0 ):
sum = sum + int (n % 10 )
n = int (n / 10 )
return sum
if __name__ = = "__main__" :
n = 687
print (getSum(n))
|
C#
using System;
class GFG {
static int getSum( int n)
{
int sum = 0;
while (n != 0) {
sum = sum + n % 10;
n = n / 10;
}
return sum;
}
public static void Main()
{
int n = 687;
Console.Write(getSum(n));
}
}
|
PHP
<?php
function getsum( $n )
{
$sum = 0;
while ( $n != 0)
{
$sum = $sum + $n % 10;
$n = $n /10;
}
return $sum ;
}
$n = 687;
$res = getsum( $n );
echo ( "$res" );
?>
|
Javascript
<script>
function getSum(n)
{
var sum = 0;
while (n != 0) {
sum = sum + n % 10;
n = parseInt(n / 10);
}
return sum;
}
var n = 687;
document.write(getSum(n));
</script>
|
Time Complexity: O(log N)
Auxiliary Space: O(1)