СРОЧНО! ДАЮ 50 БАЛЛОВ!(piton или pascal) Заданы N целых чисел. Требуется найти, сколько...

+214 голосов
4.5m просмотров

СРОЧНО! ДАЮ 50 БАЛЛОВ!(piton или pascal) Заданы N целых чисел. Требуется найти, сколько из этих чисел строго меньше N. Формат ввода Первая строка входных данных содержит одно целое число N (1 ≤ N ≤ 105). Вторая строка содержит N целых чисел ai (-109 ≤ ai ≤ 109). Формат вывода Выведите одно число — количество ai, строго меньших N. Пример Ввод Вывод 5 -10 4 10 5 2 3


Информатика (14 баллов) | 4.5m просмотров
+110

Да, можно. Но учтите, что ваше решение не читабельно от слова совсем.

+122

Эту простейшую задачу можно решить вообще в одну строчку: n = int(input()); print(sum((1 if i < n else 0) for i in map(int, input().split())))

+133

Бедный Python, как его только не обзывают)

Дано ответов: 2
+97 голосов

N = int(input())

a = [0] * N

for i in range(0, 5):

   a[i] = int(input())

col = 0

for j in a:

   if j < N:

       col += 1

print(col)

(150k баллов)
+163

Сказано, что данные для обработки программа принимает в одну строку N целых чисел. Вы же читаете все данные по одному элементу. Ясен перец, что оно не проходит тесты.

+95

Есть какой-нибудь другой вариант решения?

+141

Пишет пройден только 1 тест

+100 голосов

Ответ:

--- Python 3.8.3 ---

import typing

from typing import Callable

from typing import AnyStr

from typing import Any

from typing import Iterable

from typing import List

def SeqCount(Seq: Iterable[Any], predicate: Callable[[Any], bool]) -> int:

   counter = 0

   for item in Seq:

       if predicate(item):

           counter+=1

   return counter

def main():

   n = int(input())

   Seq = list(map(int, input().split(maxsplit = n)))

   print(SeqCount(Seq, lambda  item: item < n))

if __name__ == "__main__":

   main()

Проходит предложенный вами тест + пару придуманных лично мной

формат ввода ([Enter] - пользователь нажимает кнопку ввода. ">>>" - вывод программы):

5 [Enter]

-10 4 10 5 2 [Enter]

>>> 3

(1.6k баллов)