Как написать условие для такой задачи?
Ввел массив из 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])
