How to find the smallest and largest digits in a number in Go

1 Answer

0 votes
package main

import (
	"fmt"
)

// findMinMaxDigits finds the smallest and largest digits in a number.
//
// Parameters:
//   - number: input integer
//
// Returns:
//   - smallest digit
//   - largest digit
func findMinMaxDigits(number int) (int, int) {
	// Handle negative numbers
	if number < 0 {
		number = -number
	}

	// Special case for 0
	if number == 0 {
		return 0, 0
	}

	minDigit := 9
	maxDigit := 0

	for number > 0 {
		digit := number % 10 // Extract the last digit

		if digit < minDigit {
			minDigit = digit
		}

		if digit > maxDigit {
			maxDigit = digit
		}

		number /= 10 // Remove the last digit
	}

	return minDigit, maxDigit
}

func main() {
	number := 839516

	minDigit, maxDigit := findMinMaxDigits(number)

	fmt.Println("Number:", number)
	fmt.Println("Smallest digit:", minDigit)
	fmt.Println("Largest digit:", maxDigit)
}


/*
run:

Number: 839516
Smallest digit: 1
Largest digit: 9

*/

 



answered 1 day ago by avibootz
...