Привет! Сегодня я хочу рассказать о цифровом корне числа. Цифровой корень числа – это сумма всех его цифр до тех пор, пока не останется одна цифра. Например, цифровой корень числа 12345 равен 1 2 3 4 5 15, а затем 1 5 6.В задаче нам нужно написать функцию CalculateDigitalRoot(n), которая будет принимать на вход положительное целое число n и возвращать его цифровой корень. Мы будем использовать Go и реализовывать функцию с помощью рекурсии без форматирования числа в строку.Вот как я сделал это⁚
go
func CalculateDigitalRoot(n int) int {
sum ⁚ 0
for n > 0 {
sum n % 10
n /= 10
}
if sum > 10 {
return CalculateDigitalRoot(sum)
}
return sum
}
Начинаем с инициализации переменной sum, которая будет хранить сумму цифр числа.
Затем мы входим в цикл, пока число n больше нуля. Внутри цикла мы находим остаток от деления числа n на 10 и добавляем его к переменной sum. Затем делим число n на 10, чтобы избавиться от последней цифры.
После завершения цикла мы проверяем, если сумма больше или равна 10. Если это так, мы вызываем функцию CalculateDigitalRoot рекурсивно, передавая ей сумму в качестве аргумента. Это позволяет нам повторять процесс суммирования цифр до тех пор, пока не останется одна цифра.Если сумма меньше 10, мы возвращаем ее как результат функции.Вот как использовать нашу функцию⁚
go
func main {
number ⁚ 12345
digitalRoot ⁚ CalculateDigitalRoot(number)
fmt.Println(″Цифровой корень числа″, number, ″равен″, digitalRoot)
}
Ожидаемый результат⁚
Цифровой корень числа 12345 равен 6
Таким образом, мы успешно реализовали функцию CalculateDigitalRoot, которая находит цифровой корень числа с использованием рекурсии и без форматирования числа в строку.
Надеюсь, эта статья оказалась полезной для вас! Удачи в программировании на Go!