Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как написать программу в Питон?

Анастасия Денисова Профи (858), на голосовании 2 недели назад
Дайте развернутый ответ.
Напишите программу, которая в последовательности натуральных десятичных чисел определяет наибольший элемент, запись которого
в системе счисления с основанием 7 оканчивается нечётной цифрой. Если среди входных данных таких элементов нет, программа должна вывести «NO».

Программа получает на вход в первой строке натуральное число – количество чисел N (3 ≤ N ≤ 10 000), затем N натуральных чисел,
не превышающих 30 000, каждое в отдельной строке.

Программа должна вывести одно десятичное число – наибольший элемент последовательности, запись которого в 7-ричной системе счисления оканчивается нечётной цифрой, или «NO», если среди входных данных таких элементов нет.

Пример работы программы

Входные данные

Выходные данные

6

12

15

10

71

50

11

71
Голосование за лучший ответ
Молот Шотландцев Высший разум (303067) 1 месяц назад
 def f(x):       
b = ''
while x > 0:
b = str(x % 7) + b
x = x // 7
return b


n = [int(input()) for i in range(int(input('n')))]
nn = list(map(f,n))
m = [i for i in nn if int(i[-1]) % 2]
print(n[m.index(max(m))] if m else 'NO')
Молот ШотландцевВысший разум (303067) 1 месяц назад
Сорри, похоже ошибся в последней строке. Придется исправлять
Молот ШотландцевВысший разум (303067) 1 месяц назад
Да, вот так там надо... Теперь вроде правильно
 def f(x):       
b = ''
while x > 0:
b = str(x % 7) + b
x = x // 7
return b


n = [int(input()) for i in range(int(input('n')))]
nn = list(map(f,n))
m = [i for i in nn if int(i[-1]) % 2]
print(n[nn.index(min(m))] if m else 'NO')
Молот Шотландцев Высший разум (303067) print(n[nn.index(max(m))] if m else 'NO')
ПапаВысший разум (152617) 1 месяц назад
Зачем всё это нагромождение кода? Решил блеснуть и вывалить всё, что знаешь из питона?
Молот Шотландцев Высший разум (303067) Мимо проходим!
ПапаВысший разум (152617) 1 месяц назад
Вот тебе нормальное решение и больше не позорься:
 print(max(filter(lambda x: x % 7 % 2, map(int, map(input, [''] * int(input())))), default='NO')) 
И ради Бога, не говори, что ты его вычитал у Марка Лутца или где-то ещё. Меня это не интересует.
Юрий Семыкин Искусственный Интеллект (216032) 1 месяц назад
 mx='NO' # результат для печати 
for i in range(1,int(input('n='))+1): # цикл ввода чисел
x=int(input(f'x[{i}]=')) # ввод очередного числа
if not (x%7)%2: continue # посл 7ричн. цифра нечёт=ост от дел на 2 не 0== не ложь
if i==1: # первое число уд. условию
mx=x # запомним
continue
mx=max(x,mx) # не первое - выберем наиб. из предудущего и текущего
print(mx)
mx='NO' # результат для печати
for i in range(1,int(input('n='))+1): # цикл ввода чисел
x=int(input(f'x[{i}]=')) # ввод очередного числа
if not (x%7)%2: continue # посл 7ричн. цифра нечёт=ост от дел на 2 не 0== не ложь
if i==1: # первое число уд. условию
mx=x # запомним
continue
mx=max(x,mx) # не первое - выберем наиб. из предудущего и текущего
print(mx)
Наталья Мазеина Ученик (164) 1 месяц назад
n=int(input())
count=0
for i in range (n):
a=int(input())
if a%7==2:
count+=1
if count==0:
print ('NO')
else:
print (count)
Наталья МазеинаУченик (164) 1 месяц назад
извините, написала ответ на другую задачу. Вот верный
n=int(input())
count=0
max=0
for i in range (n):
a=int(input())
if a%7==5 or a%7==3 or a%7==1 and a>max:
count+=1
max=a
if count==0:
print ('NO')
else:
print (max)
светлана уварова Знаток (265) 1 месяц назад
a = int(input())
m = 0
for i in range(a):
x = int(input())
if (x%5)%2!=0:
m+=1

if m>0:
print(m)
else:
print('no')
Виктория Ермакова Знаток (287) 4 недели назад
 N = int(input())
max_number = 0
for i in range(N):
n = int(input())
if (n%7)%2 == 1:
if n > max_number:
max_number = n

if max_number>0:
print(max_number)
else:
print("NO")
Похожие вопросы