1464 - Sir7
Context[edit | edit source]
Ionuț este pasionat de numere. Într-o zi , Ionuț a găsit o foaie și, pornind de la cifra 9, a construit un șir S de numere naturale nenule ai cărui primi termeni sunt: 9 19 39 49 69 79 99 109 129 139 159...............
În altă zi, pornind de la cifra 7, a construit șirul 7 17 37 47 67 77 97 107 127 137 157...............
În altă zi, Ionuț a construit același șir pornind de la cifra P.
Cerinţa[edit | edit source]
Scrieți un algoritm care determină, pornind de la cifra cifra_start, cel de-al numar_termen-lea termen al sirului S.
Date de intrare[edit | edit source]
Se citesc de la tastatură cifra_start și numar_termen cu semnificația din enunț.
Date de ieșire[edit | edit source]
Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse.", pe rândul următor, programul va afișa pe ecran un număr natural reprezentând cel de-al numar_termen-lea termen al șirului S. Î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[edit | edit source]
- cifra_start, numar_termen ∈ ℕ
- 1 ⩽ cifra_start ⩽ 9
- 2 ⩽ numar_termen ⩽ 109
Exemplu[edit | edit source]
- Intrare
- 9
- 10
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 139
- Intrare
- abc
- Ieșire
- Datele introduse nu corespund restricțiilor impuse.
- Intrare
- -25
- Ieșire
- Datele introduse nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
Rezolvare ver. 1[edit | edit source]
<syntaxhighlight lang="python" line>
- 1464 - Sir7
def validare_date_cifra_start(numar):
if numar.isdigit(): if 1 <= int(numar) <= 9: return True else: return False else: return False
def validare_date_numar_termen(numar):
if numar.isdigit(): if 2 <= int(numar) <= 10**9: return True else: return False else: return False
def sir7(cifra_start, numar_termen):
if numar_termen % 2 == 0: print(numar_termen // 2 + numar_termen - 2, end="") print(cifra_start) else: print(numar_termen // 2 + numar_termen - 1, end="") print(cifra_start)
if __name__ == "__main__":
cifra_start = input() if validare_date_cifra_start(cifra_start): cifra_start = int(cifra_start) numar_termen = input() if validare_date_numar_termen(numar_termen): numar_termen = int(numar_termen) print("Datele de intrare corespund restricțiilor impuse.") sir7(cifra_start, numar_termen) else: print("Datele de intrare nu corespund restricțiilor impuse.") else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>