Как написать условие для такой задачи?

Задача

Ввел массив из 9 элементов, для каждой цифры по элементу. При попытке деления какого либо числа например 832, отрываем старшую цифру, то есть 8 и записываем в нужный элемент, то есть 8 элемент будет равен 1, еще одно число - 845, элемент будет равен 2 и т.д Не получается изменить значение элемента массива

n=int(input())
a=[0] * 9

for i in range(n):
    x=int(input())
    while x > 9:
        x // 10
        if x < 10:
            a[x-1] += 1

print(a)

Ответы (1 шт):

Автор решения: CrazyElf

Так то всё работает, просто вы когда делили x на 10 не присвоили никуда результат операции x // 10.

n=int(input())
a=[0] * 9

for i in range(n):
    x=int(input())
    while x > 9:
        x //= 10 # здесь забыли присвоить результат, я исправил
        if x < 10:
            a[x-1] += 1

print(a)

А вообще можно сделать чуть короче, учитывая, что условие уже проверено в while.

n=int(input())
a=[0] * 9

for i in range(n):
    x=int(input())
    while x > 9:
        x //= 10
    a[x-1] += 1

print(a)

P.S. А, там ещё дальше сама задача, собственно. Она решается, например, так:

print(min([x for x in enumerate(a,1) if x[1] > 0], key=lambda x: x[1])[0])
→ Ссылка