Инвариант цикла — это свойство, которое остается неизменным во время выполнения цикла. В данном случае инвариантом цикла может быть следующее: "Количество обработанных цифр числа равно n".
Теперь мы можем привести пример программы на Python, которая будет подсчитывать количество цифр в заданном натуральном числе.
def count_digits(n):
count = 0
# Проверяем, является ли число 0
if n == 0:
return 1
# Уменьшаем число, пока оно не станет равным 0
while n > 0:
n //= 10 # Делим число на 10, отбрасывая последнюю цифру
count += 1 # Увеличиваем счетчик цифр
return count
# Примеры использования:
print(count_digits(0)) # 1
print(count_digits(1)) # 1
print(count_digits(9)) # 1
print(count_digits(10)) # 2
print(count_digits(1054)) # 4
Объяснение программы:
- Функция
count_digits(n)принимает одно натуральное числоn. - В начале проверяем, равняется ли
nнулю, так как у нуля есть одна цифра. - Затем через цикл
whileпроверяем, покаnбольше 0:- делим
nна 10 (n //= 10), тем самым отбрасывая последнюю цифру. - увеличиваем счетчик
countна 1.
- делим
- Когда
nстановится равно 0, возвращаем количество цифр, которое указано вcount.
Таким образом, программа решает задачу подсчета количества цифр в натуральном числе.