Софтуерно Инженерство
Loading...
+ Нов въпрос
Bars1967 avatar Bars1967 5 Точки

Задача "Рожден ден"

Някакво решение?

Вече открих, че първият примерен отговор се различава от истинския резултат при така подадената на вход информация (проверих го и с калкулатора :)))
Любопитно ми е, дали и как някой е намерил начин от вход на една линия да се четат числа и думи...

0
Python
The_assassin avatar The_assassin 158 Точки

То по принцип си има функция за това, но на този етап, трябва да стане по следния начин:
Проверяваш дали входът е очакваният текст, и ако не е, го „парсваш“ към int(). Опитай, и ако не се справиш, ще ти дам решение!

Само за да няма объркване, това е задача № 6Торта“, от „While loop exercise“, нали?

0
Bars1967 avatar Bars1967 5 Точки

да, това е задачата

и да - аз стигнах до същия извод, после обаче правя някаква грешка, защото не ми изважда последното число

От вчера се опитвам и не успявам да се справя, ще опитам днес за последо :)

Отказвам се.

Прекалено малко пояснения, прекалено много "виртуални" примери - на първия "Примерен вход и изход" цикъла приключва още след 22 - не иска да продължи, не се сещам как да го направя.

Ей "грубия" код - има нещо, което не виждам явно:

w = int(input())
h = int(input())


area = w * h
guest = 0
par_count = 0
w_count = 0

while not area == guest:
    guest = input()

    if not guest == "STOP":
        guest = int(guest)
        if w_count == 0:
            par_count = area - guest
        if w_count != 0:
            par_count -= guest
            if par_count < guest:
                par_count = guest - par_count
                break
        w_count += 1

    elif guest == "STOP" or par_count <= area:

        break
0
09/11/2018 16:48:51
The_assassin avatar The_assassin 158 Точки

Честно казано, сега не ми се проверява, кое не е наред:

Това е моят вариант:

w = int(input())
l = int(input())
all_pcs = w * l

while all_pcs >= 0:
    tkn_pcs = input()
    if not tkn_pcs.upper() == 'STOP':
        all_pcs -= int(tkn_pcs)
    else:
        break

if all_pcs > 0:
    print('%d pieces are left.' % all_pcs)
else:
    print('No more cake left! You need %d pieces more.' % abs(all_pcs))

 

0
Bars1967 avatar Bars1967 5 Точки

Благодаря!
Снощи разбрах, че проблема ми идвал от "копи - пейст" - един невидим ентър, който ми прекъсвал цикъла.

Кода, който показах тук е измислица, в резултат на тази грешка.

Съжалявам за това, че губих и от твоето време, но .uper() вътре в if определено е нещо много полезно за мен :)

Още веднъж - Благодаря!

0
10/11/2018 10:46:58