0560 - Flori: Difference between revisions
Tita Marian (talk | contribs) No edit summary |
|||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== Cerinţa == | == Cerinţa == | ||
Copiii din clasa a V-a au hotărât să planteze flori, micșunele și panseluțe, în grădina din curtea școlii. Ei au plantat un număr de '''n''' flori astfel: un rând de micșunele, '''2''' rânduri de panseluțe, '''3''' rânduri de micșunele, '''4''' rânduri de panseluțe, și așa mai departe până au terminat toate florile. Fiecare rând conține un număr de '''5''' flori, ultimul rând putând să conțină mai puține flori. Copiii doresc să cunoască numărul de rânduri plantate, dacă ultimul rând a fost complet sau nu și ce flori s-au plantat pe ultimul rând.== Date de intrare == | Copiii din clasa a V-a au hotărât să planteze flori, micșunele și panseluțe, în grădina din curtea școlii. Ei au plantat un număr de '''n''' flori astfel: un rând de micșunele, '''2''' rânduri de panseluțe, '''3''' rânduri de micșunele, '''4''' rânduri de panseluțe, și așa mai departe până au terminat toate florile. Fiecare rând conține un număr de '''5''' flori, ultimul rând putând să conțină mai puține flori. Copiii doresc să cunoască numărul de rânduri plantate, dacă ultimul rând a fost complet sau nu și ce flori s-au plantat pe ultimul rând. | ||
== Date de intrare == | |||
Programul citește de la tastatură un număr natural '''n''', reprezentând numărul florilor. | Programul citește de la tastatură un număr natural '''n''', reprezentând numărul florilor. | ||
== Date de ieșire == | == Date de ieșire == | ||
Pe primul rând al ecranului se va afișa câte rânduri au plantat copii în total, pe al doilea rând al ecranului se va afișa mesajul '''DA''', dacă ultimul rând este complet și mesajul '''NU''' dacă ultimul rând este incomplet, iar pe al treilea rând al ecranului se va afișa numele florilor plantate pe ultimul rând (micsunele sau panselute). Atenție, mesajul de pe rândul 2 se scrie cu litere mari iar cel de pe rândul 3 cu litere mici. | Pe primul rând al ecranului se va afișa câte rânduri au plantat copii în total, pe al doilea rând al ecranului se va afișa mesajul '''DA''', dacă ultimul rând este complet și mesajul '''NU''' dacă ultimul rând este incomplet, iar pe al treilea rând al ecranului se va afișa numele florilor plantate pe ultimul rând (micsunele sau panselute). Atenție, mesajul de pe rândul 2 se scrie cu litere mari iar cel de pe rândul 3 cu litere mici. | ||
În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse.". | În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse.", iar daca se indeplinesc se afiseaza mesajul "Datele de intrare corespund restricțiilor impuse." | ||
== Restricţii şi precizări == | == Restricţii şi precizări == | ||
* 0 < '''n''' ⩽ 100000 | * 0 < '''n''' ⩽ 100000 | ||
== | == Exemplul 1 == | ||
; Intrare | ; Intrare | ||
20 | |||
; Ieșire | ; Ieșire | ||
Datele de intrare corespund restricțiilor impuse. | |||
4 | |||
DA | |||
micsunele | |||
<br> | <br> | ||
== | |||
== Exemplul 2 == | |||
; Intrare | ; Intrare | ||
0 | |||
; Ieșire | ; Ieșire | ||
Datele de intrare nu corespund restricțiilor impuse. | |||
<br> | <br> | ||
Line 45: | Line 47: | ||
n = int(input("Introduceți numărul de flori: ")) | n = int(input("Introduceți numărul de flori: ")) | ||
if 0 < n <= 100000: | if 0 < n <= 100000: | ||
print("Datele de intrare corespund restricțiilor impuse.") | |||
break | break | ||
else: | else: | ||
print(" | print("Datele de intrare nu corespund restricțiilor impuse.") | ||
numar_randuri_complete, ultimul_rand_complet, ultimul_rand_flori = determina_plantare(n) | numar_randuri_complete, ultimul_rand_complet, ultimul_rand_flori = determina_plantare(n) | ||
Line 57: | Line 60: | ||
print("NU") | print("NU") | ||
print(ultimul_rand_flori) | print(ultimul_rand_flori) | ||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 10:37, 14 December 2023
Cerinţa[edit | edit source]
Copiii din clasa a V-a au hotărât să planteze flori, micșunele și panseluțe, în grădina din curtea școlii. Ei au plantat un număr de n flori astfel: un rând de micșunele, 2 rânduri de panseluțe, 3 rânduri de micșunele, 4 rânduri de panseluțe, și așa mai departe până au terminat toate florile. Fiecare rând conține un număr de 5 flori, ultimul rând putând să conțină mai puține flori. Copiii doresc să cunoască numărul de rânduri plantate, dacă ultimul rând a fost complet sau nu și ce flori s-au plantat pe ultimul rând.
Date de intrare[edit | edit source]
Programul citește de la tastatură un număr natural n, reprezentând numărul florilor.
Date de ieșire[edit | edit source]
Pe primul rând al ecranului se va afișa câte rânduri au plantat copii în total, pe al doilea rând al ecranului se va afișa mesajul DA, dacă ultimul rând este complet și mesajul NU dacă ultimul rând este incomplet, iar pe al treilea rând al ecranului se va afișa numele florilor plantate pe ultimul rând (micsunele sau panselute). Atenție, mesajul de pe rândul 2 se scrie cu litere mari iar cel de pe rândul 3 cu litere mici. În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse.", iar daca se indeplinesc se afiseaza mesajul "Datele de intrare corespund restricțiilor impuse."
Restricţii şi precizări[edit | edit source]
- 0 < n ⩽ 100000
Exemplul 1[edit | edit source]
- Intrare
20
- Ieșire
Datele de intrare corespund restricțiilor impuse. 4 DA micsunele
Exemplul 2[edit | edit source]
- Intrare
0
- Ieșire
Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
def determina_plantare(n):
numar_randuri_complete = (n + 4) // 5 flori_ramase = n % 5 ultimul_rand_complet = (flori_ramase == 0)
if ultimul_rand_complet or flori_ramase <= 2: ultimul_rand_flori = "micsunele" else: ultimul_rand_flori = "panselute"
return numar_randuri_complete, ultimul_rand_complet, ultimul_rand_flori
if __name__ == "__main__":
while True: n = int(input("Introduceți numărul de flori: ")) if 0 < n <= 100000: print("Datele de intrare corespund restricțiilor impuse.") break else: print("Datele de intrare nu corespund restricțiilor impuse.")
numar_randuri_complete, ultimul_rand_complet, ultimul_rand_flori = determina_plantare(n)
print(numar_randuri_complete) if ultimul_rand_complet: print("DA") else: print("NU") print(ultimul_rand_flori)
</syntaxhighlight>
Explicație[edit | edit source]
Numărul total de flori (citit de la tastatură) trebuie împărțit la 5 pentru a determina câte rânduri complete au fost plantate. Dacă numărul total de flori este divizibil cu 5, ultimul rând este complet (pentru că fiecare rând are 5 flori). Altfel, ultimul rând este incomplet. Se alege numele florilor pentru ultimul rând în funcție de numărul de flori rămase. Se afișează numărul de rânduri complete, informația dacă ultimul rând este complet sau nu, și numele florilor pentru ultimul rând.