1961 - Cosmin: Difference between revisions

From Bitnami MediaWiki
Sinn Erich (talk | contribs)
Sinn Erich (talk | contribs)
Line 28: Line 28:
== Rezolvare ==  
== Rezolvare ==  
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
#4273
#1961
def patrate_perfecte(n):
import math
    patrate = []
    i = 1
    while len(patrate) < n:
        patrat = i * i
        patrate.append(patrat)
        i += 1
    return patrate


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}")
def main():
    n, sqrt2, x = get_input_values()
    result = calculate_result(x, n)
    print_result(n, result)


def calculeaza(numbers):
# Apelăm funcția principală
    product = 1
main()
    for number in numbers:
        product *= number
    return product




def validare_numar(n):
</syntaxhighlight>
    if n < 1 or n > 10:
'''Explicatie cod:'''
        return False
Funcția 1: get_input_values()
    return True
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.


if __name__ == '__main__':
Funcția 3: print_result(n, result)
    n = int(input("Introduceți numărul n: "))
Această funcție va afișa rezultatul formatat.
    if not validare_numar(n):
        print("Datele introduse nu corespund cerintelor.")
    else:
        squares = patrate_perfecte(n)
        product = calculeaza(squares)
        print("Datele introduse corespund cerintelor.")
        print(product)


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

Revision as of 10:29, 1 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.

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}")

def main():

   n, sqrt2, x = get_input_values()
   result = calculate_result(x, n)
   print_result(n, result)
  1. Apelăm funcția principală

main()


</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.