Контейнеры на складе лежат в ряд в порядке невозрастания своей массы (в килограммах). На склад привезли ещё один контейнер, который также нужно положить на определённое место.
Напишите программу, которая получает на вход невозрастающую последовательность натуральных чисел, означающих массу каждого контейнера в ряду. После этого вводится число X — масса нового контейнера. Программа выводит номер, под которым будет лежать новый контейнер. Если в ряде есть контейнеры с одинаковой массой, такой же, как у нового, то его нужно положить после них.
Обеспечьте контроль ввода: все числа не превышают 200.
Пример:
Кол-во контейнеров: 8
Введите вес контейнера: 165
Введите вес контейнера: 163
Введите вес контейнера: 160
Введите вес контейнера: 160
Введите вес контейнера: 157
Введите вес контейнера: 157
Введите вес контейнера: 155
Введите вес контейнера: 154
Введите вес нового контейнера: 162
Номер, куда встанет новый контейнер: 3
Python
Помогите пожалуйста с задачей на Python
def f(x):
~~if x < 1 or x > 200:
~~~~print('Вес є [1;200]'); return False
~~else: return True
n=int(input('Количество контейнеров: '))
a,i=[],0
while i < n:
~~b=int(input\
~~('Введите вес контейнера: '))
~~if f(b): a.append(b); i+=1
while True:
~~X=int(input\
~~('Введите вес нового контейнера: '))
~~if f(X): break
for i in range(n):
~~if X >= A[i]: print(i+1); break
~~if x < 1 or x > 200:
~~~~print('Вес є [1;200]'); return False
~~else: return True
n=int(input('Количество контейнеров: '))
a,i=[],0
while i < n:
~~b=int(input\
~~('Введите вес контейнера: '))
~~if f(b): a.append(b); i+=1
while True:
~~X=int(input\
~~('Введите вес нового контейнера: '))
~~if f(X): break
for i in range(n):
~~if X >= A[i]: print(i+1); break
Димон Чушенков
Алгоритм не учитывает случая когда новый контейнер равен по весу последнему из имеющихся. Например, есть контейнеры: 103, 102, 102, 101, 101, 101, новый контейнер 101 вставляем в самый конец списка.
i = 0
while X < L[i]:
i += 1
print( i )
_____
Где L - список чисел
while X < L[i]:
i += 1
print( i )
_____
Где L - список чисел
listik_conteiners = []
listik_conteiners_new = []
num = 0
index_cont = 1
num_conteiners = int(input('Кол-во контейнеров: '))
for index in range(1,num_conteiners):
while num < num_conteiners:
print('Масса контейнера',index_cont,': ', end='')
massa_conteinera = int(input())
while True:
if massa_conteinera > 200:
print('Вы ввели некоректную массу контейнера!')
print('Введите массу контейнера в числовом эквиваленте и не превышающуюю 200 кг.!')
print('Масса контейнера', index_cont, ': ', end='')
massa_conteinera = int(input())
else:
break
listik_conteiners.append(massa_conteinera)
num += 1
index_cont += 1
print(listik_conteiners)
massa_conteinera_new = int(input('\nВведите вес нового контейнера: '))
massa_conteinera_new_num = 1 # Завел эту переменную для того, чтобы небыло возможности вставить один и тот же контейнер несколько раз
place = 1
for index in listik_conteiners:
listik_conteiners_new.append(index)
place += 1
if index == massa_conteinera_new and massa_conteinera_new_num > 0:
listik_conteiners_new.append(massa_conteinera_new)
massa_conteinera_new_num -= 1
print('\nНомер, куда встанет новый контейнер: ',place)
if massa_conteinera_new_num > 0:
listik_conteiners_new.append(massa_conteinera_new)
print('\nНомер, куда встанет новый контейнер: ',place)
print('\nНовый список контейнеров',listik_conteiners_new)
listik_conteiners_new = []
num = 0
index_cont = 1
num_conteiners = int(input('Кол-во контейнеров: '))
for index in range(1,num_conteiners):
while num < num_conteiners:
print('Масса контейнера',index_cont,': ', end='')
massa_conteinera = int(input())
while True:
if massa_conteinera > 200:
print('Вы ввели некоректную массу контейнера!')
print('Введите массу контейнера в числовом эквиваленте и не превышающуюю 200 кг.!')
print('Масса контейнера', index_cont, ': ', end='')
massa_conteinera = int(input())
else:
break
listik_conteiners.append(massa_conteinera)
num += 1
index_cont += 1
print(listik_conteiners)
massa_conteinera_new = int(input('\nВведите вес нового контейнера: '))
massa_conteinera_new_num = 1 # Завел эту переменную для того, чтобы небыло возможности вставить один и тот же контейнер несколько раз
place = 1
for index in listik_conteiners:
listik_conteiners_new.append(index)
place += 1
if index == massa_conteinera_new and massa_conteinera_new_num > 0:
listik_conteiners_new.append(massa_conteinera_new)
massa_conteinera_new_num -= 1
print('\nНомер, куда встанет новый контейнер: ',place)
if massa_conteinera_new_num > 0:
listik_conteiners_new.append(massa_conteinera_new)
print('\nНомер, куда встанет новый контейнер: ',place)
print('\nНовый список контейнеров',listik_conteiners_new)
Похожие вопросы
- Помогите пожалуйста с задачей на Python.
- Помогите пожалуйста с задачей по python!
- Помогите пожалуйста с задачей на Python.
- Помогите пожалуйста с задачей на python!
- Помогите пожалуйста решить задачу на python
- Помогите пожалуйста с задачей по python!
- Помогите пожалуйста с задачей по python!
- Помогите, пожалуйста, решить задачу Python
- Помогите пожалуйста решить задачу "Ход конём" в Python.
- Помогите, пожалуйста, с задачей Python , Яндекс практикум.