1 / 5
Dec 2019

“Błędna odpowiedź” cenne wskazówki dlaczego?

z = int(input())

for x in range(z):
try:
    value1, value2 = input().split()
    value1, value2 = int(value1), int(value2)

    if (value1 > value2 and value1 % value2 == 0):
        print(value1)
    elif (value1 < value2 and value2 % value1 == 0):
        print(value2)
    elif (value1 == value2):
        print(value2)
    else:
        print(value1 * value2)

except ZeroDivisionError:
    break
  • created

    Dec '19
  • last reply

    Dec '19
  • 4

    replies

  • 830

    views

  • 3

    users

  • 2

    likes

  • 1

    link

Skoro jest tak dobrze to dlaczego jest tak źle :confused:

  1. Skoro jest dobrze to po co try … except (u mnie wywala na try próbuję na Ideone)
  2. Program źle liczy dla przykładów z zadania
  3. Można poczytać na forum … i doczytać o najmniejszej wspólnej wielokrotności

Z treści zadania
pani Agnieszka musi kupić minimalną liczbę cukierków
Ilość cukierków będzie minimalna gdy zamiast mnożenia zastosujesz wyszukiwanie liczby będącej najmniejszą wspólną wielokrotnością obu danych wartości.

Przerobiłem kod na NWW dla 0 ilości danych kończy pętle.
Dla 2 i 6 podaje 6, 9 i 3 podaje 9, 17 i 17 podaje 17 i dla 15 i 10 zamiast podawać 150 jak wcześniej podaje 30. Czyli chyba tak powinno być. Przy wpisaniu jako value1 lub value 2 zera kończy program.
Dalej błąd w wyniku.

z = int(input())

for x in range(z):
value1, value2 = input().split()
value1, value2 = int(value1), int(value2)
if (value1 == 0 or value2 == 0):
    break
else:
    value3, value4 = value1 , value2
    while (value1 != value2 and value1>0 and value2>0):
        if (value1 > value2):
            value1 = value1 - value2
        elif (value1 < value2):
            value2 = value2 - value1
NWW = (value3 * value4) / value1
print(NWW)

Edit: Trzeba zamienić print(NWW) na print(int(NWW))
DZIAŁA!!! dzięki za pomoc :*