Loading...
NKKalev avatar NKKalev 10 Точки

04. Sum of two numbers - Nested loops - Lab

Здравейте,

 

Може ли малко помощ със следния код:

 

starting_number = int(input())
final_number = int(input())
magic_number = int(input())

combinations = 0
is_found = False

for i in range(starting_number, final_number + 1):
    for j in range(starting_number, final_number + 1):
        combinations += 1

        if i + j == magic_number:
            print(f'Combination N:{combinations} ({i} + {j} = {magic_number})')
            is_found = True
            break

    if is_found:
        break

    print(f'{combinations} combinations - neither equals {magic_number}')

 

При вход 1,10,5 програмата работи, но при вход 23,24,20 получавам два изхода и не мога да разбера къде трябва да бъде последният Print.

 

Поздрави

Тагове:
0
mark79 avatar mark79 639 Точки

Здравей,

може да пробваш така ..

            print(f"Combination N:{combinations} ({i} + {j} = {magic_number})")
            exit()

print(f"{combinations} combinations - neither equals {magic_number}")

Поздрави :)

0
NKKalev avatar NKKalev 10 Точки

Така работи - 100 точки в джъдж, но може ли малко разяснения?

 

Не съм ползвал exit() досега, но ми се струва, че е подобно на break. Тоест, ако не получим "магическото число" програмата извърта двата цикъла, комбинациите се натрупват и ние просто си принтираме сбора на тези комбинации с посочения формат? Но ако го получим - exit() спира цялата програма?

 

Много благодаря!

0
25/10/2019 18:23:49
mark79 avatar mark79 639 Точки

Здравей,

доста правилно си се ориентирал .. ето и корекциите по-твоя код, за да сравниш нещата .. просто си спестяваш няколкото проверки.

if not is_found:
    print(f'{combinations} combinations - neither equals {magic_number}')

Поздрави :)

0
25/10/2019 18:43:15
IrenaRy avatar IrenaRy 5 Точки

Здравей, и аз се сблъсках с този проблем, с най-различен брой изходи. Решението ми (без 'exit') бе, че направих една изнесена най-вляво проверка "ако Булевата стойност НЕ е" и отдолу вече сложих принта, че няма нито една комбинация.

В твоя случай, предполагам, че ще изглежда така накрая:

      if is_found:
         break
if not is_found:
    print(f'{combinations_counter} combinations - neither equals {magic_number}')

 

Ето го моя код целия, който дава 100 точки в Джъдж: https://pastebin.com/XcAttwYR

0
25/10/2019 23:12:33
NKKalev avatar NKKalev 10 Точки

Благодаря!  :)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.