Професионална програма
Loading...
+ Нов въпрос
Julianh12 avatar Julianh12 2 Точки

09.Moving от 05.PB-Python-While-Loop-LAB Решението ми дава 62/100 ПОМОЩ

9.*Преместване

На осемнадесетия си рожден ден Хосе взел решение, че ще се изнесе да живее на квартира. Опаковал багажа си в кашони и намерил подходяща обява за апартамент под наем. Той започва да пренася своя багаж на части, защото не може наведнъж. Има ограничено свободно пространство в новото си жилище, където може да разположи вещите, така че мястото да бъде подходящо за живеене.

Напишете програма, която изчислява свободния обем от жилището на Хосе, който остава, след като пренесе багажа си.

 

Всеки кашон е с точни размери: 1m x 1m x 1m.

Вход

Потребителят въвежда следните данни на отделни редове:

  1. Широчина на свободното пространство - цяло число;

  2. Дължина на свободното пространство - цяло число;

  3. Височина на свободното пространство - цяло число;

  4. На следващите редове (до получаване на команда "Done") - брой кашони, които се пренасят в квартирата - цели числа

Програмата трябва да приключи прочитането на данни при команда "Done" или ако свободното място свърши.

Изход

Да се отпечата на конзолата един от следните редове:

  • Ако стигнете до командата "Done" и има още свободно място:

"{брой свободни куб. метри} Cubic meters left."

  • Ако свободното място свърши преди да е дошла команда "Done":

"No more free space! You need {брой недостигащи куб. метри} Cubic meters more."

 

Имам проблем някакъв с преобразуване на десети ред

width = int(input())
length = int(input())
heigth = int(input())
free_space = width * length * heigth
total_space=0
space_diff=0
command=input()

while command!="Done" or space_diff<0:
   carton_space=int(command)
   total_space+=carton_space
   space_diff=abs(total_space-free_space)
   if total_space>=free_space:
      print(f"No more free space! You need {space_diff} Cubic meters more.")
   command=input()

if command == "Done":
      print(f"{space_diff} Cubic meters left.")

Link към judge:

https://judge.softuni.bg/Contests/Compete/Index/2419#0

Тагове:
0
Programming Basics 04/06/2021 10:06:57
svephoto avatar svephoto 978 Точки
Best Answer

Трябва да добавиш break след като отпечаташ, че няма повече свободно място и след това програмата трябва да приключи. Това е едното от двете изисквания за прекратяване прочитането на входни данни и е изрично казано в условието на задачата: Програмата трябва да приключи прочитането на данни при команда "Done" или ако свободното място свърши. Иначе продължаваш да четеш входни данни, а то няма повече такива и затова програмата ти зависва.

if total_space >= free_space:
    print(f"No more free space! You need {space_diff} Cubic meters more.")
    break
0
06/06/2021 11:58:38