How to calculate the Sum of digits of an integer number in Golang
- Admin
- Dec 31, 2023
- Golang-examples
In this post, You will learn different ways to the addition of digits of a number in the Go language
- Using Iterative Function
- Using Recursive Function
The Sum of digits of a number is to retrieve each digit of a number and add these numbers to the result.
For example, if the given number is 154, The sum of the digits of a number is 1+5+4=10.
To understand this example, You should have the following features in the Go language.
- Golang For Loop control structure
- Golang For Loop Range form
- Golang Operator Guide
- Golang Recursion Examples
Calculate the Sum of digits of a number using the Modulus Operator Golang
In this below program, The input number is read from the user keyboard console, store these numbers in variable numbers.
Iterate each digit of a number using for a loop until the condition (number!=0) is false i.e number is zero.
Retrieve the remainder for the given number using the modulus operator(%) and add this to the sumResult.
It does continue execution until the division of the number with base 10 is zero.
Here is a program to calculate add of digits of an integer using for loop
package main
import (
"fmt"
)
func sumDigits(number int) int {
remainder: = 0
sumResult: = 0
for number != 0 {
remainder = number % 10
sumResult += remainder
number = number / 10
}
return sumResult
}
func main() {
var number int
fmt.Print("Enter Number:")
fmt.Scanln( & number)
fmt.Printf("Addition digits of %d = %d\n", number, sumDigits(number))
}
When the above program is executed, Output:
Enter Number:2535
Addition digits of 2535 = 15
For example, If the given input is entered as 2535 and variable sumResult
is zero
initially.
- Loop the number and inside the For loop
2535%10=5 modulus operator % gives remainder - sumResult=sumResult+remainder(0+5), sumResult=5 now
2535/10=235 ie number 235
235%10=5 - sumResult=sumResult+5 ie 5+5=10, so sumResult=10 now
235/10=23 ie number 23
23%10=3 - sumResult=sumResult+3 ie 10+3=13, so sumResult=13 now
23/10=3 ie number 2
2%10=2 - sumResult=sumResult+2 ie 13+2=15, so sumResult=15 now
0/10=0 ie number 0
the number is zero, conditional expression in for loop is evaluated to false and Loop terminates its execution.
How to calculate the Sum of digits using recursive function golang
This program takes user input from a keyboard terminal and stores it in a variable number.
Declared Recursive function. Recursion is a function called inside a function.
Initially, the Recursive function is called from the main function.
Here are the steps for recursion steps to calculate digits
For example, if the given number is 67845
Following are step-by-step execution
recursiveSumDigits(67845) - sumResult=0
\--recursiveSumDigits(6784) - sumResult=0+5
--recursiveSumDigits(678) - sumResult=5+4
--recursiveSumDigits(67) - sumResult=9+8
--recursiveSumDigits(6) - sumResult=17+7
--recursiveSumDigits(0) - sumResult=24 +6=30 is returned
Example program:
package main
import (
"fmt"
)
func recursiveSumDigits(number int) int {
sumResult: = 0
if number == 0 {
return 0
}
sumResult = number % 10 + recursiveSumDigits(number / 10)
return sumResult
}
func main() {
var number int
fmt.Print("Enter Number:")
fmt.Scanln( & number)
fmt.Printf("Addition digits of %d = %d\n", number, recursiveSumDigits(number))
}
Output:
Enter Number:67845
Addition digits of 67845 = 30