1464 - Sir7

From Bitnami MediaWiki

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>

  1. 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>