3479 - 2 Ian: Difference between revisions

From Bitnami MediaWiki
 
(2 intermediate revisions by the same user not shown)
Line 6: Line 6:


==Date de ieșire==
==Date de ieșire==
Fișierul de ieșire '''2lan.out''' va conține ultima cifra a lui '''<math>2^n</math>'''.
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse.". Fișierul de ieșire '''2lan.out''' va conține ultima cifra a lui '''<math>2^n</math>'''. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."


==Restricții și precizări==
==Restricții și precizări==
Line 12: Line 12:


==Exemplul 1==
==Exemplul 1==
;Intrare
;2lan.in


:6
:6


;Ieșire
;2lan.out


:4
:4


==Explicatie==
;Ieșire
:Datele de intrare corespund restricțiilor impuse.
 
==Explicație==
<math>2^6</math> = 64 și ultima sa cifră este 4.
<math>2^6</math> = 64 și ultima sa cifră este 4.



Latest revision as of 17:53, 22 April 2023

Cerință[edit]

Se da un număr n. Calculați ultima cifră a lui .

Date de intrare[edit]

Fișierul de intrare 2lan.in conține pe prima linie numărul n.

Date de ieșire[edit]

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse.". Fișierul de ieșire 2lan.out va conține ultima cifra a lui . În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."

Restricții și precizări[edit]

0 ≤ n ≤ 100.000

Exemplul 1[edit]

2lan.in
6
2lan.out
4
Ieșire
Datele de intrare corespund restricțiilor impuse.

Explicație[edit]

= 64 și ultima sa cifră este 4.

Rezolvare[edit]

Rezolvare ver. 1[edit]

<syntaxhighlight lang="python" line="1" start="1">

  1. Funcție pentru validarea valorii n.

def validare(n):

   if 0 <= n <= 100000:
       return True
   else:
       return False


  1. Funcție pentru calcularea ultimei cifre a lui 2^n.

def ultima_cifra_2_la_n(n):

   # Ciclicitatea cifrelor la puterile pare ale lui 2 este 2-4-8-6.
   return pow(2, n % 4 + 4) % 10


if __name__ == '__main__':

   # Citirea valorii n din fișierul de intrare.
   with open('2lan.in', 'r') as fin:
       n = int(fin.readline().strip())
   # Validarea valorii n.
   if not validare(n):
       print("Datele de intrare nu corespund restricțiilor impuse.")
   else:
       print("Datele de intrare corespund restricțiilor impuse.")
       # Calcularea și scrierea rezultatului în fișierul de ieșire.
       result = ultima_cifra_2_la_n(n)
       with open('2lan.out', 'w') as fout:
           fout.write(str(result))

</syntaxhighlight>