3484 - 3 La N: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: <math>3^{3^{3^{numar1*numar2}}}</math>Sursă: [https://www.pbinfo.ro/probleme/362/sumcif1] ==Cerinţa== Se citește un număr natural '''numar'''. Să se determine suma cifrelor aflate pe poziții pare. Numărarea pozițiilor în numărul dat se face începând de la cifra unităților. ==Date de intrare== Programul citește de la tastatură numărul '''numar'''. ==Date de ieşire== Programul afișează pe ecran numărul '''suma''', reprezentând suma cerută. ==Restricții...
 
No edit summary
Line 1: Line 1:
<math>3^{3^{3^{numar1*numar2}}}</math>Sursă: [https://www.pbinfo.ro/probleme/362/sumcif1]
Sursă: [https://www.pbinfo.ro/probleme/362/sumcif1]


==Cerinţa==
== Cerinţa ==
Se citește un număr natural '''numar'''. se determine suma cifrelor aflate pe poziții pare. Numărarea pozițiilor în numărul dat se face începând de la cifra unităților.
Se dau '''numar''' numere naturale distincte. Pentru oricare două numere date, distincte, '''numar1''' şi '''numar2''', se determină ultima cifră a numărului <math>3^{3^{3^{numar1*numar2}}}</math> şi se însumează cifrele obţinute. Aflaţi valoarea acestei sume.
==Date de intrare==
==Date de intrare==
Programul citește de la tastatură numărul '''numar'''.
Fișierul de intrare '''3lan.in''' conține pe prima linie numărul '''numar''', iar pe a doua linie cele '''numar''' numere date, despărţite prin spaţii.
==Date de ieşire==
==Date de ieşire==
Programul afișează pe ecran numărul '''suma''', reprezentând suma cerută.
Fișierul de ieșire '''3lan.out''' va conține pe prima linie suma cerută.
==Restricții și precizări==
==Restricții și precizări==
*''' 1 &les; numar &les; 1.000.000.000'''
* ''' 2 &les; numar &les; 1.000'''
* cele '''numar''' numere date sunt cel mult egale cu '''10.000'''


==Exemplu==
== Exemplu ==
;Intrare
; 3lan.in
:59712654
: 2
;Ieșire
: 9 0
:19
; 3lan.out
 
: 7
==Explicație==
S-au adunat cifrele '''5 2 7 5'''.


==Rezolvare==
==Rezolvare==
Line 24: Line 23:


numar = int(input())
numar = int(input())
suma = 0
a = list(map(int, input().split()))
pozitie = 1
s = 0
 
def treilan(x, y):
    rest = (x * y) % 4
    if rest == 0:
        nr1 = 1
    elif rest == 1:
        nr1 = 3
    elif rest == 2:
        nr1 = 9
    else:
        nr1 = 7
    nr1 %= 4
    if nr1 == 0:
        nr2 = 1
    elif nr1 == 1:
        nr2 = 3
    elif nr1 == 2:
        nr2 = 9
    else:
        nr2 = 7
    nr2 %= 4
    if nr2 == 0:
        return 1
    elif nr2 == 1:
        return 3
    elif nr2 == 2:
        return 9
    else:
        return 7
 
for i in range(1, numar+1):
    for j in range(i+1, numar+1):
        s += treilan(i, j)


while numar > 0:
print(s)
    cifra = numar % 10
    if pozitie % 2 == 0:
        suma += cifra
    pozitie += 1
    numar //= 10


print(suma)


</syntaxhighlight>
</syntaxhighlight>

Revision as of 16:30, 12 March 2023

Sursă: [1]

Cerinţa

Se dau numar numere naturale distincte. Pentru oricare două numere date, distincte, numar1 şi numar2, se determină ultima cifră a numărului şi se însumează cifrele obţinute. Aflaţi valoarea acestei sume.

Date de intrare

Fișierul de intrare 3lan.in conține pe prima linie numărul numar, iar pe a doua linie cele numar numere date, despărţite prin spaţii.

Date de ieşire

Fișierul de ieșire 3lan.out va conține pe prima linie suma cerută.

Restricții și precizări

  • 2 ⩽ numar ⩽ 1.000
  • cele numar numere date sunt cel mult egale cu 10.000

Exemplu

3lan.in
2
9 0
3lan.out
7

Rezolvare

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

numar = int(input()) a = list(map(int, input().split())) s = 0

def treilan(x, y):

   rest = (x * y) % 4
   if rest == 0:
       nr1 = 1
   elif rest == 1:
       nr1 = 3
   elif rest == 2:
       nr1 = 9
   else:
       nr1 = 7
   nr1 %= 4
   if nr1 == 0:
       nr2 = 1
   elif nr1 == 1:
       nr2 = 3
   elif nr1 == 2:
       nr2 = 9
   else:
       nr2 = 7
   nr2 %= 4
   if nr2 == 0:
       return 1
   elif nr2 == 1:
       return 3
   elif nr2 == 2:
       return 9
   else:
       return 7

for i in range(1, numar+1):

   for j in range(i+1, numar+1):
       s += treilan(i, j)

print(s)


</syntaxhighlight>