Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Bitnami MediaWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
0951 - Cifre7
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
Se generează un şir de cifre ai cărui primi termeni sunt, în această ordine: '''1, 1, 2, 4, 7, 3, 4, 4, 1, 9, 4, 4, 7, 5, 6, 8,...''' ==Cerință== Deduceţi regula după care sunt generaţi termenii şirului şi scrieţi un program care să citească numerele naturale '''n''', '''k''' şi '''p''' şi care să determine: a) numărul de apariţii ale cifrei k printre primii n termeni ai şirului din enunţ; <br> b) cel de-al p-lea termen al şirului din enunţ. ==Date de intrare== Programul citește de la tastatură numerele '''n k p'''. ==Date de ieșire== Programul va afișa pe ecran două numere naturale: *primul număr va reprezenta numărul de apariţii ale cifrei k printre primii n termeni ai şirului din enunţ; *al doilea număr va reprezenta cel de-al p-lea termen al şirului din enunţ. ==Restricții de precizări== *Numerele '''n k p''' sunt naturale *'''17 ≤ n ≤100; 0 ≤ k ≤ 9; 1≤ p ≤ 2000000000''' *Pentru rezolvarea corectă a cerinţei a) se acordă '''30%''' din punctaj iar pentru cerinţa b) 70% din punctaj. ==Exemplul 1== ;Intrare 19 4 26 ;Ieșire Datele de intrare corespund restrictiilor impuse. 5 7 ==Exemplul 2== ;Intrare 200 200 200 ;Ieșire Datele de intrare nu corespund restrictiilor impuse. ==Rezolvare== <syntaxhighlight lang="python" line="1" start="1"> def verificare_restrictii(nr_n, nr_k, nr_p): # functia de verificare a datelor de intrare if 17 <= nr_n <= 100 and 0 <= nr_k <= 9 and 1 <= nr_p <= 2000000000: return True else: return False def sir_numere(nr_n, nr_k, nr_p): sir = [1, 1, 2, 4, 7, 3, 4, 4, 1, 9] while len(sir) < max(nr_n, nr_p): ultim_cifra = sir[-1] % 10 penultim_cifra = sir[-2] % 10 antepenultim_cifra = sir[-3] % 10 nou_cifra = (ultim_cifra + penultim_cifra + antepenultim_cifra) % 10 sir.append(nou_cifra) nr_aparitii_k = sir[:n].count(nr_k) al_p_lea_termen = sir[p-1] return nr_aparitii_k, al_p_lea_termen if __name__ == "__main__": try: n = int(input("Introduceti numarul n: ")) k = int(input("Introduceti numarul k: ")) p = int(input("Introduceti numarul p: ")) if verificare_restrictii(n, k, p): # verificam datele de intrare print("Datele de intrare corespund restrictiilor impuse.") aparitii_k, p_lea_termen = sir_numere(n, k, p) print(aparitii_k) print(p_lea_termen) else: print("Datele de intrare nu corespund restrictiilor impuse.") # ne asteptam la 2 tipuri de erori din cauza datelor de intrare, le tratam corespunzator except ValueError: print("Datele de intrare nu corespund restrictiilor impuse.") except IndexError: print("Datele de intrare nu corespund restrictiilor impuse.") </syntaxhighlight> ==Explicație== Primii 19 termeni ai şirului sunt: '''1,1,2,4,7,3,4,4,1,9,4,4,7,5,6, 8,9,3,0'''. Primul număr afişat este 5, deoarece sunt 5 cifre din șir egale cu '''k (k=4)''' printre primii '''n=19''' termeni ai şirului. Al doilea număr afişat este 7, deoarece cel de-al p-lea (p=26) termen al şirului este 7.
Summary:
Please note that all contributions to Bitnami MediaWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Bitnami MediaWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Toggle limited content width