Top.Mail.Ru
Ответы

Програмирование 7 класс

Дана непустая последовательность целых чисел, оканчивающаяся нулем. Ноль в последовательность не входит, служит признаком ее окончания. Найти количество чисел последовательности, которые больше первого введенного числа.

Входные данные
На вход поступают числа последовательности, по одному числу в строке. Ноль - признак окончания ввода.

Выходные данные
Выведите ответ на задачу.
Запрещенные операторы: break;list;[
напишите програмуу на питон

По дате
По рейтингу
Аватар пользователя
Новичок

Без хранения элементов в памяти, будь то в виде списка (list) или кортежа (tuple). Полностью однопроходный алгоритм. Без императивных циклов (и соответственно, без break и т.п.). И без дублирования кода.

123
 ns = (int(s) for s in iter(input, '0')) 
first = next(ns) 
print(sum(1 for k in ns if k > first)) 
Аватар пользователя
Мастер

number = int(input("Число'))
count = 0
ans = 100
while ans != 0:
ans = int(input())
if ans > number:
count += 1
print(count)

Если честно, не совсем понял задачу, но помог чем смог. Сорри)

Аватар пользователя
Просветленный
1
 print((lambda x: sum(v > x.__getitem__(0) for v in x))(tuple(map(int, iter(input, '0'))))) 
Аватар пользователя
Мудрец
1234567891011121314
 # Считываем первое число и инициализируем переменную-счетчик 
first_num = int(input()) 
count = 0 
 
# Считываем остальные числа и проверяем, больше ли они первого числа 
while True: 
    num = int(input()) 
    if num == 0: # Если введен ноль, прерываем цикл 
        break 
    elif num > first_num: 
        count += 1 
 
# Выводим количество чисел, больших первого введенного числа 
print(count) 
Аватар пользователя
Мудрец

Если не использовать хитрости вроде замены списков кортежами и прочими итерабельными объектами, то основная трудность заключается в том, что условие прекращения (ввод нуля) должно проверяться до обработки введённого значения, что, казалось бы, автоматически влечёт использование break.

Однако в языке есть возможность, позволяющая обойти это ограничение, — выражение присваивания .

123456
 number = int(input())  
count = 0  
while (val := int(input())) != 0:  
  if val > number:  
    count += 1  
print(count)