1961 - Cosmin: Difference between revisions

From Bitnami MediaWiki
Sinn Erich (talk | contribs)
Sinn Erich (talk | contribs)
Line 34: Line 34:
#1961
#1961
import math
import math


def get_input_values():
def get_input_values():
Line 40: Line 41:
     x = 5 * sqrt2 - 7
     x = 5 * sqrt2 - 7
     return (n, sqrt2, x)
     return (n, sqrt2, x)
def calculate_result(x, n):
def calculate_result(x, n):
     x_pow_n = pow(x, n)
     x_pow_n = pow(x, n)
     result = str(x_pow_n)[:n]
     result = str(x_pow_n)[:n]
     return result
     return result
def print_result(n, result):
def print_result(n, result):
     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}")
def main():
 
     n, sqrt2, x = get_input_values()
 
if __name__ == '__main__':
    # Restrictii: 1 ≤ n ≤ 100.000
    n = int(input("Introduceti numarul de zecimale: "))
    if n < 1 or n > 100000:
        print("Numarul de zecimale trebuie sa fie intre 1 si 100.000.")
        exit()
 
     sqrt2 = math.sqrt(2)
    x = 5 * sqrt2 - 7
 
     result = calculate_result(x, n)
     result = calculate_result(x, n)
     print_result(n, result)
     print_result(n, result)


# Apelăm funcția principală
main()





Revision as of 19:48, 2 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, programul va rula.

În cazul în care datele nu respectă restricțiile, 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(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("Numarul de zecimale trebuie sa fie intre 1 si 100.000.")
       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.