1961 - Cosmin: Difference between revisions
Sinn Erich (talk | contribs) |
Sinn Erich (talk | contribs) |
||
(6 intermediate revisions by the same user not shown) | |||
Line 14: | Line 14: | ||
== Date de ieșire == | == 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. | 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 == | == Restricţii şi precizări == | ||
Line 20: | Line 24: | ||
== Exemplul 1 == | == Exemplul 1 == | ||
; | ; Datele de intrare | ||
: Introduceti numarul de zecimale: | |||
: 1 | : 1 | ||
; | ; Datele de ieșire | ||
: 0 | : Datele sunt introduse corect. | ||
: Primele 1 cifre ale valorii aproximate pentru radicalul de 2 sunt: 0 | |||
<br> | <br> | ||
Line 30: | Line 36: | ||
#1961 | #1961 | ||
import math | import math | ||
def get_input_values(): | def get_input_values(): | ||
Line 36: | Line 43: | ||
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("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}") | ||
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) | result = calculate_result(x, n) | ||
print_result(n, result) | print_result(n, result) | ||
Latest revision as of 07:05, 27 April 2023
Sursa: [1]
Cerinţa[edit | edit source]
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[edit | edit source]
Programul citește de la tastatură numărul n.
Date de ieșire[edit | edit source]
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[edit | edit source]
1 ≤ n ≤ 100.000
Exemplul 1[edit | edit source]
- Datele de intrare
- Introduceti numarul de zecimale:
- 1
- Datele de ieșire
- Datele sunt introduse corect.
- Primele 1 cifre ale valorii aproximate pentru radicalul de 2 sunt: 0
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
- 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.