3210 - Cumpărături

De la Universitas MediaWiki
Versiunea din 10 februarie 2023 09:27, autor: Bogdan.Pop (discuție | contribuții) (Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/3210/cumparaturi 3210 - Cumparaturi] ---- == Cerinţa == O cutie cu bomboane costă '''cost_cutie''' lei. Gigel are '''suma_gigel''' lei. Determinați câte cutii cu bomboane poate cumpăra Gigel și câți lei trebuie să mai primească pentru a cumpăra încă o cutie. == Date de intrare == Programul citește de la tastatură numărul '''cost_cutie''' și '''suma_gigel''', fiecare pe rând nou. == Date de ieșire == Pe ecran se va afi...)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)

Sursa: 3210 - Cumparaturi


Cerinţa

O cutie cu bomboane costă cost_cutie lei. Gigel are suma_gigel lei. Determinați câte cutii cu bomboane poate cumpăra Gigel și câți lei trebuie să mai primească pentru a cumpăra încă o cutie.

Date de intrare

Programul citește de la tastatură numărul cost_cutie și suma_gigel, fiecare pe rând nou.

Date de ieșire

Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse.", urmat, pe rândul următor, de numerele raspuns_cutii și raspuns_cutie_aditioanala, separate printr-un spațiu, reprezentând numărul de cutii cu bomboane pe care Gigel le poate cumpăra cu suma_gigel lei, respectiv suma necesară pentru a cumpăra încă o cutie. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, programul va afișa "Datele de intrare nu corespund restricțiilor impuse.".

Restricţii şi precizări

  • cost_cutie, suma_gigel ∈ ℕ
  • 1 ⩽ cost_cutie, suma_gigel ⩽ 1.000.000.000

Exemplu

Intrare
4
9
Ieșire
Datele introduse corespund restricțiilor impuse.
2 3


Intrare
abc
63.5
Ieșire
Datele introduse nu corespund restricțiilor impuse.


Intrare
2
-25
Ieșire
Datele introduse nu corespund restricțiilor impuse.


Rezolvare

Rezolvare ver. 1

# 3210 - Cumparaturi

def validare_date_bani(cost_cutie: str, suma_gigel: str) -> bool:
    if cost_cutie.isdigit() and suma_gigel.isdigit():
        if 1 <= int(cost_cutie) <= 1_000_000_000 and 1 <= int(suma_gigel) <= 1_000_000_000:
            return True
        else:
            return False
    else:
        return False
    

def cumparaturi(cost_cutie: int, suma_gigel: int) -> int:
    raspuns_cutii: int = suma_gigel // cost_cutie
    raspuns_cutie_aditionala = (raspuns_cutii + 1) * cost_cutie - suma_gigel
    
    return raspuns_cutii, raspuns_cutie_aditionala


if __name__ == "__main__":
    cost_cutie = input()
    suma_gigel = input()
    
    if validare_date_bani(cost_cutie, suma_gigel):
        cost_cutie, suma_gigel = int(cost_cutie), int(suma_gigel)
        
        print("Datele de intrare corespund restricțiilor impuse.")
        print(*cumparaturi(cost_cutie, suma_gigel))
        
    else:
        print("Datele de intrare nu corespund restricțiilor impuse.")