1961 - Cosmin: Difference between revisions

From Bitnami MediaWiki
Sinn Erich (talk | contribs)
Sinn Erich (talk | contribs)
Line 50: Line 50:


def print_result(n, result):
def print_result(n, result):
    print("Datele sunt introduse corect.")
     print(f"Primele {n} cifre ale valorii aproximate pentru radicalul de 2 sunt: {result}")
     print(f"Primele {n} cifre ale valorii aproximate pentru radicalul de 2 sunt: {result}")


Line 57: Line 58:
     n = int(input("Introduceti numarul de zecimale: "))
     n = int(input("Introduceti numarul de zecimale: "))
     if n < 1 or n > 100000:
     if n < 1 or n > 100000:
         print("Numarul de zecimale trebuie sa fie intre 1 si 100.000.")
         print("Datele nu corespund restricțiilor impuse.")
         exit()
         exit()


Line 65: Line 66:
     result = calculate_result(x, n)
     result = calculate_result(x, n)
     print_result(n, result)
     print_result(n, result)





Revision as of 11:10, 25 April 2023

Sursa: [1]

Cerinţa

Cosmin e pasionat de matematică. Acesta spune despre numărul x că e un număr special și că de acum încolo îl va numi “numărul lui Cosmin”.

Numărul x este un număr real cu proprietatea că:

x=5⋅2–√–7 Profesorul de informatică îi dă ca temă lui Cosmin să creeze un program care citește numărul natural n și afișează pe ecran primele n zecimale ale lui xn, în ordinea în care apar.

Ajutați-l pe Cosmin!

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Programul va afișa pe ecran primele n zecimale ale lui xn, în ordinea în care apar, fără spații.

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", apoi pe un rând nou afișează pe ecran primele n zecimale ale lui xn, în ordinea în care apar.

În caz contrar, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse."

Restricţii şi precizări

1 ≤ n ≤ 100.000

Exemplul 1

Intrare
1
Ieșire
0


Rezolvare

<syntaxhighlight lang="python" line>

  1. 1961

import math


def get_input_values():

   n = int(input("Introduceti numarul de zecimale: "))
   sqrt2 = math.sqrt(2)
   x = 5 * sqrt2 - 7
   return (n, sqrt2, x)


def calculate_result(x, n):

   x_pow_n = pow(x, n)
   result = str(x_pow_n)[:n]
   return result


def print_result(n, result):

   print("Datele sunt introduse corect.")
   print(f"Primele {n} cifre ale valorii aproximate pentru radicalul de 2 sunt: {result}")


if __name__ == '__main__':

   # Restrictii: 1 ≤ n ≤ 100.000
   n = int(input("Introduceti numarul de zecimale: "))
   if n < 1 or n > 100000:
       print("Datele nu corespund restricțiilor impuse.")
       exit()
   sqrt2 = math.sqrt(2)
   x = 5 * sqrt2 - 7
   result = calculate_result(x, n)
   print_result(n, result)


</syntaxhighlight> Explicatie cod:

Funcția 1: get_input_values() Această funcție va citi valorile pentru numărul de zecimale, aproximația radicalului de 2 și valoarea lui x. Ea va returna aceste valori sub forma unei liste/tupluri.

Funcția 2: calculate_result(x, n) Această funcție va calcula valoarea lui x la puterea n și va returna primele n cifre sub forma unui string.

Funcția 3: print_result(n, result) Această funcție va afișa rezultatul formatat.

Funcția principală: main() Această funcție va apela celelalte funcții pentru a obține și afișa rezultatul final.