Шешімі: Подсчёт шестнадцатеричных чисел
Напишите программу подсчёта количества элементов последовательности натуральных чисел, запись которых в шестнадцатеричной системе счисления трёхзначна и оканчивается на цифру 8. Программа получает на вход натуральные числа. Количество введённых чисел неизвестно, но не превышает 1000. Последовательность чисел заканчивается числом 0, которое не входит в последовательность. Программа должна напечатать только одно число — количество искомых элементов.
Пример: для последовательности 168, 280, 888, 952, 4120 программа должна вывести 3.
Шешім по шагам
5 қадамСоздадим переменную-счётчик и установим её начальное значение равным нулю.
$$count = 0$$Будем считывать числа в цикле. При вводе нуля завершаем цикл, так как ноль является признаком окончания последовательности.
$$n = 0 \Rightarrow \text{конец ввода}$$Переведём каждое введённое число в шестнадцатеричную систему счисления с помощью функции `format(n, 'X')`.
Проверим, что полученная запись имеет ровно три символа и заканчивается символом 8. Если оба условия выполнены, увеличим счётчик.
$$len(s) = 3 \land s.endswith('8')$$После завершения ввода выведем количество найденных чисел.
Программа на Python подсчитывает числа с трёхзначной шестнадцатеричной записью, оканчивающейся на 8, и выводит их количество.
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Проверяют последнюю цифру в десятичной жазбалар, а не в шестнадцатеричной.
Считают число 0 элементом последовательности.
Проверяют только длину жазбалар или только её последний символ.
Используют условие `len(s) >= 3` вместо проверки ровно трёхзначной жазбалар.