package main
import (
"fmt"
"errors"
"strconv"
)
/*
GetNthDigitFromLeft returns the N-th digit of a number
counting from the left.
*/
func GetNthDigitFromLeft(inputNumber int64, digitPosition int) (int, error) {
if inputNumber < 0 {
inputNumber = -inputNumber
}
digitString := strconv.FormatInt(inputNumber, 10)
if digitPosition < 1 || digitPosition > len(digitString) {
return 0, errors.New("digit position is out of range")
}
digit := int(digitString[digitPosition - 1] - '0')
return digit, nil
}
func main() {
inputNumber := int64(82746)
firstDigit, err := GetNthDigitFromLeft(inputNumber, 1)
if err != nil {
fmt.Println("Error:", err)
return
}
thirdDigit, err := GetNthDigitFromLeft(inputNumber, 3)
if err != nil {
fmt.Println("Error:", err)
return
}
fifthDigit, err := GetNthDigitFromLeft(inputNumber, 5)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Printf("Number: %d\n", inputNumber)
fmt.Printf("1st digit from left: %d\n", firstDigit)
fmt.Printf("3rd digit from left: %d\n", thirdDigit)
fmt.Printf("5th digit from left: %d\n", fifthDigit)
}
/*
run:
Number: 82746
1st digit from left: 8
3rd digit from left: 7
5th digit from left: 6
*/