
Помогите исправить решения задач: 1.Заполните массив случайными числами в интервале [0,1000] и
найдите количество элементов, старшая цифра которых равна 8. В решение нужно записать 2-4 строчки более простым способом. from random import randint def getH(s): while s>10: s=s//10 return s n=int(input('Введите размер массива: ')) a=[0]*n b=0 for i in range(0, n-1): a[i]=randint(0, 1000) if getH(a[i])==8: b+=1 print(a) print('Элементов начинающихся с 8 =',b) 2. Заполните массив случайными числами в интервале [0,1000] и выведите номера трёх различных минимальных элементов. Разрешается сделать только один проход по массиву. Заменить первую строчку a=sorted(a) i=1 b=1 print('3 минимальных элемента') print(a[0]) while b<3 and b if a[i]!=a[i-1]: print(a[i]) b+=1 i+=1

Ответы на вопрос

Ответ:
Python
from random import randint
n=int(input('Введите размер массива: '))
a=[0]*n
b=0
for i in range(0, n-1):
a[i]=randint(0, 1000)
# это часть для замены функции getH
c=a[i]
if a[i]>=100: c=a[i]//100
elif a[i]>10: c=a[i]//10
# конец определения первой цифры
if c==8:
b+=1
print(a)
print('Элементов начинающихся с 8 =',b)
# задание 2
# это вместо sorted.
i=1
while i<n:
if a[i]<a[i-1]:
z=a[i-1]
a[i-1]=a[i]
a[i]=z
if i>1:
i-=1
else: i+=1
# конец сортировки
i=1
b=1
print('3 минимальных элемента')
print(a[0])
while b<3 and b<n:
if a[i]!=a[i-1]:
print(a[i])
b+=1
i+=1




Вот исправленные версии ваших решений:
- Заполните массив случайными числами в интервале [0,1000] и найдите количество элементов, старшая цифра которых равна 8. В решении нужно записать 2-4 строки более простым способом.
pythonfrom random import randint
n = int(input('Введите размер массива: '))
a = [randint(0, 1000) for _ in range(n)]
count_starting_with_8 = sum(1 for num in a if str(num)[0] == '8')
print(a)
print('Элементов начинающихся с 8 =', count_starting_with_8)
- Заполните массив случайными числами в интервале [0,1000] и выведите номера трёх различных минимальных элементов. Разрешается сделать только один проход по массиву.
pythonfrom random import randint
n = int(input('Введите размер массива: '))
a = [randint(0, 1000) for _ in range(n)]
min_indices = []
min_values = [float('inf')] * 3
for i, num in enumerate(a):
if num < max(min_values):
min_index = min_values.index(max(min_values))
min_values[min_index] = num
min_indices[min_index] = i
print('3 минимальных элемента:')
for i in min_indices:
print(a[i])
В обоих случаях используется более простой и понятный способ для выполнения задач.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili