Решение задач 1: Напишите программу 9

Messages
1,600
Reaction score
288
Website
tehadm.ru

Цифровой корень​

Цифровой корень натурального числа — это цифра, полученная в результате итеративного процесса суммирования цифр, на каждой итерации которого для подсчета суммы цифр берут результат, полученный на предыдущей итерации. Этот процесс повторяется до тех пор, пока не будет получена одна цифра.
Например цифровой корень 65536 это 7 , потому что 6+5+5+3+6=25 и 2+5=7 .
По данному числу определите его цифровой корень.

Входные данные
Вводится одно натуральное число n, не превышающее 107107.

Выходные данные
Вывести цифровой корень числа n.

Sample Input:
3456

Sample Output:
9
 
C-like:
package main

import "fmt"

func main() {
    var n int
    fmt.Scan(&n)

    for n >= 10 {
        sum := 0
        for n > 0 {
            sum += n % 10
            n /= 10
        }
        n = sum
    }

    fmt.Println(n)
}

  1. Сначала программа запрашивает ввод натурального числа с помощью функции Scan из пакета fmt и сохраняет его в переменную n.
  2. Затем запускается цикл for, который будет выполняться до тех пор, пока число n не станет однозначным (т.е., меньше 10).
  3. Внутри этого цикла происходит следующее:
    • Создаётся переменная sum, в которой будет храниться сумма цифр числа n.
    • Запускается ещё один цикл for, который будет выполняться до тех пор, пока число n больше нуля.
    • На каждой итерации этого внутреннего цикла:
      • Вычисляется остаток от деления числа n на 10 с помощью операции n % 10. Это позволяет извлечь последнюю цифру числа n.
      • Полученный остаток прибавляется к переменной sum.
      • Число n делится на 10 с округлением вниз, т.е., последняя цифра отбрасывается, и программа переходит к следующей итерации внутреннего цикла для обработки следующей цифры числа n.
  4. После завершения внутреннего цикла переменная n перезаписывается значением переменной sum.
  5. После того как внешний цикл завершает свою работу (т.е., когда число n становится однозначным), программа выводит значение n на экран с помощью функции Println из пакета fmt.
 
Back
Top