1503 - Puteri 5: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: ==Cerința== Deoarece Ionel nu a înţeles bine ordinea de efectuare a operaţiilor de ridicare la putere, doamna învăţătoare îi dă o tema care să îl ajute să aprofundeze această problemă. Astfel, îi dă mai multe exerciţii de următorul tip: pentru trei cifre nenule <code>a</code>, <code>b</code>, <code>c</code>, el va trebui să calculeze valoarea următoarei expresii: <code>a<sup>b^c</sup>+a<sup>c^b</sup>+b<sup>a^c</sup>+b<sup>c^a</sup>+c<sup>a^b</sup>+c<sup>...
Tag: visualeditor
 
No edit summary
Tag: visualeditor
 
(4 intermediate revisions by the same user not shown)
Line 9: Line 9:
Fișierul de intrare <code>puteri5.in</code> conține pe prima linie trei cifre <code>a b c</code>, separate prin câte un spaţiu.
Fișierul de intrare <code>puteri5.in</code> conține pe prima linie trei cifre <code>a b c</code>, separate prin câte un spaţiu.
==Date de ieșire==
==Date de ieșire==
Fișierul de ieșire <code>puteri5.out</code> va conține un număr natural ce reprezintă valoarea obţinută pentru expresia precizată anterior.
Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse."
 
Pe următorul rând se va afișa un număr natural ce reprezintă valoarea obţinută pentru expresia precizată anterior.
 
Î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."


==Restricții și precizări==
==Restricții și precizări==
Line 19: Line 23:
:2 1 3
:2 1 3
;Ieșire
;Ieșire
:Datele de intrare corespund restricțiilor impuse.
:24
:24


Line 28: Line 33:
:2 3 2
:2 3 2
;Ieșire
;Ieșire
:Datele de intrare corespund restricțiilor impuse.
:1698
:1698


Line 34: Line 40:
:4, 0, 6
:4, 0, 6
;Ieșire
;Ieșire
:Date de intrare gresite!
:Datele de intrare nu corespund restricțiilor impuse.


==Rezolvare==
==Rezolvare==
Line 43: Line 49:




def expresie(a, b, c):
def puteri5(a, b, c):
     return sum([
     # sum() este o funcție built-in care returnează suma elementelor dintr-o listă
    # ** este operatorul de ridicare la putere
    # ex: (a**(b**c)) este echivalent cu a^(b^c)
    print(sum([
         (a ** (b ** c)),
         (a ** (b ** c)),
         (a ** (c ** b)),
         (a ** (c ** b)),
Line 51: Line 60:
         (c ** (a ** b)),
         (c ** (a ** b)),
         (c ** (b ** a))
         (c ** (b ** a))
     ])
     ]))




def main():
if __name__ == "__main__":
     a, b, c = [int(x) for x in input().split()]
     a, b, c = [int(x) for x in input().split()]


     if not conditii(a, b, c):
     if not conditii(a, b, c):
         return print("Date de intrare gresite!")
         print("Datele de intrare nu corespund restricțiilor impuse.")
 
    else:
    print(expresie(a, b, c))
        print("Datele de intrare corespund restricțiilor impuse.")
 
        puteri5(a, b, c)
 
if __name__ == "__main__":
    main()


</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 09:54, 5 May 2023

Cerința[edit]

Deoarece Ionel nu a înţeles bine ordinea de efectuare a operaţiilor de ridicare la putere, doamna învăţătoare îi dă o tema care să îl ajute să aprofundeze această problemă. Astfel, îi dă mai multe exerciţii de următorul tip: pentru trei cifre nenule a, b, c, el va trebui să calculeze valoarea următoarei expresii:

ab^c+ac^b+ba^c+bc^a+ca^b+cb^a

Cunoscând cifrele a, b, c, determinaţi valoarea obţinută în urma efectuării calculelor de mai sus.

Date de intrare[edit]

Fișierul de intrare puteri5.in conține pe prima linie trei cifre a b c, separate prin câte un spaţiu.

Date de ieșire[edit]

Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse."

Pe următorul rând se va afișa un număr natural ce reprezintă valoarea obţinută pentru expresia precizată anterior.

Î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."

Restricții și precizări[edit]

  • 1 ≤ a,b,c ≤ 5

Exemplu 1[edit]

Intrare
2 1 3
Ieșire
Datele de intrare corespund restricțiilor impuse.
24

Explicație[edit]

Suntem în cazul 21^3+23^1+12^3+13^2+32^1+31^2=21+23+18+19+32+31=2+8+1+1+9+3=24

Exemplu 2[edit]

Intrare
2 3 2
Ieșire
Datele de intrare corespund restricțiilor impuse.
1698

Exemplu 3[edit]

Intrare
4, 0, 6
Ieșire
Datele de intrare nu corespund restricțiilor impuse.

Rezolvare[edit]

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

  1. 1503 Puteri 5

def conditii(a, b, c):

   return 1 <= min(a, b, c) <= max(a, b, c) <= 5


def puteri5(a, b, c):

   # sum() este o funcție built-in care returnează suma elementelor dintr-o listă
   # ** este operatorul de ridicare la putere
   # ex: (a**(b**c)) este echivalent cu a^(b^c)
   print(sum([
       (a ** (b ** c)),
       (a ** (c ** b)),
       (b ** (a ** c)),
       (b ** (c ** a)),
       (c ** (a ** b)),
       (c ** (b ** a))
   ]))


if __name__ == "__main__":

   a, b, c = [int(x) for x in input().split()]
   if not conditii(a, b, c):
       print("Datele de intrare nu corespund restricțiilor impuse.")
   else:
       print("Datele de intrare corespund restricțiilor impuse.")
       puteri5(a, b, c)

</syntaxhighlight>