Задача Wars. Кодом активации к сверхновой игре «Underground Wars» является натуральное число. На запрос сервер посылает код, но почему-то не один, а несколько. Но какой из них настоящий? Герой олимпиады Василий Пупкин решил, что настоящий код состоит из цифр, в соответствующем разряде встречаются чаще всех присланных кодов. Если такую цифру определить однозначно невозможно, настоящий код содержит в этом разряде цифру 0. Например, если сервер прислал коды 234, 244 и 354, настоящий код будет 204, так как в разряде единиц все цифры одинаковые, десятки - установить невозможно, сотни-цифры 2, так как случается чаще всего. Помогите Васе найти верный код и активировать игру.
Технические условия. Программа Wars читает с устройства стандартного ввода количество кодов N (2 <= N <= 100) и далее через пробел N натуральных чисел, не больше 109 - полученные коды. Программа выводит на устройство стандартного вывода единственное число - настоящий код. Если в отдельных кодах не хватает цифр, считать их нулями. Незначащие нули в старших разрядах выводить не нужно.
Примеры
Ввод Вывод
3 234 244 354 204
Ввод Вывод
3 122 33 43 3
Ввод Вывод
4 2 2 4 4 0
Ответы
Ответ дал:
0
Пример решения на Python:
N = [int(input()) for i in range(int(input()))]
result = ''
while max(N) != 0:
Grid = [0] * 10
for i in range(len(N)):
if N[i] != 0:
temp = N[i] % 10
N[i] //= 10
Grid[temp] += 1
else:
temp = 0
Grid[temp] += 1
temp = int(max(Grid))
if Grid.count(temp) == 1:
temp = Grid.index(temp)
result = str(temp) + result
else:
result = '0' + result
if result == '0':
print(0)
else:
print(int(result))
Нужно только пробелы правильно расставить
N = [int(input()) for i in range(int(input()))]
result = ''
while max(N) != 0:
Grid = [0] * 10
for i in range(len(N)):
if N[i] != 0:
temp = N[i] % 10
N[i] //= 10
Grid[temp] += 1
else:
temp = 0
Grid[temp] += 1
temp = int(max(Grid))
if Grid.count(temp) == 1:
temp = Grid.index(temp)
result = str(temp) + result
else:
result = '0' + result
if result == '0':
print(0)
else:
print(int(result))
Нужно только пробелы правильно расставить
Ответ дал:
0
Напиши обозначения переменных и несколько комментариев(python это не моё) и я отмечу ответ лучшим.
Ответ дал:
0
N = [int(input()) for i in range(int(input()))] #Записываем переменные в массив
result = '' #Создаём пустую строку
result = '' #Создаём пустую строку
Ответ дал:
0
while max(N) != 0: #Входим в цикл, который работает до тех пор, пока наше наибольшее значение из Массива N > 0
Grid = [0] * 10 #Создаём новый массив из 10 ячеек
for i in range(len(N)): #Новый цикл с количеством заходов = кол-ву переменных, которые мы ввели
if N[i] != 0:
temp = N[i] % 10 #Записываем в переменную последнюю цифру из числа
N[i] //= 10 #Удаляем последнюю цифру из числа
Grid[temp] += 1 #Добавляем 1 в ячейку нашего массива от номера пследней цифры
else:
temp = 0
Grid[temp] += 1
Grid = [0] * 10 #Создаём новый массив из 10 ячеек
for i in range(len(N)): #Новый цикл с количеством заходов = кол-ву переменных, которые мы ввели
if N[i] != 0:
temp = N[i] % 10 #Записываем в переменную последнюю цифру из числа
N[i] //= 10 #Удаляем последнюю цифру из числа
Grid[temp] += 1 #Добавляем 1 в ячейку нашего массива от номера пследней цифры
else:
temp = 0
Grid[temp] += 1
Ответ дал:
0
temp = int(max(Grid)) #Выйдя из 2 цикла в переменную записываем максимальное кол-во цифр одного разряда
if Grid.count(temp) == 1: #Проверяем, чтобы кол-во цифр одного разряды было максимальный только в 1 ячейке
temp = Grid.index(temp) #В переменную записываем индекс массив (какой цифры было больше всего)
result = str(temp) + result #В начало цисла добавляет эту цифру в виде строки
else:
result = '0' + result #Если таких цифр несколько в нашу переменную с начала добавляем 0
if Grid.count(temp) == 1: #Проверяем, чтобы кол-во цифр одного разряды было максимальный только в 1 ячейке
temp = Grid.index(temp) #В переменную записываем индекс массив (какой цифры было больше всего)
result = str(temp) + result #В начало цисла добавляет эту цифру в виде строки
else:
result = '0' + result #Если таких цифр несколько в нашу переменную с начала добавляем 0
Ответ дал:
0
if result == '0': #Выйдя из 1 цикла проверяем наше число
print(0)
else:
print(int(result))
print(0)
else:
print(int(result))
Вас заинтересует
2 года назад
2 года назад
8 лет назад
8 лет назад