Grade 9 · liceuRead in English
Algoritmi pentru clasa a ix-aGrade 9
Algoritmii de clasa a ix-a, capitol cu capitol. Citești ideea, rulezi codul pe exemple și vezi ce ai învățat.
- 87algoritmi
- 8capitole
- 1clasă
87 de algoritmi
Clasa a IX-aGrade 9
0%0%
Cifrele unui număr
Digits of a number · 15 algoritmi
- Numărul de apariții ale cifrei kNumber of occurrences of digit kParcurgem cifrele lui n și numărăm câte sunt egale cu k. Cu do-while, pentru n = 0 și k…
- Cel mai mare număr format cu cifrele lui nLargest number formed from the digits of nNumărăm de câte ori apare fiecare cifră, într-un vector de frecvență cu 10 poziții…
- Cifra de controlCheck digit (digital root)Cifra de control se obține înlocuind numărul cu suma cifrelor lui, în mod repetat, până…
- Cifra maximă și cifra minimăLargest and smallest digitPornim cu maximul 0 (cea mai mică cifră posibilă) și minimul 9 (cea mai mare cifră…
- Verificarea cifrelor distincteChecking for distinct digitsVerifică dacă toate cifrele lui n sunt diferite. Ținem minte ce cifre am văzut deja…
- Afișarea cifrelor în ordinea din numărPrinting the digits in their order in the numberCu n % 10 cifrele ies de la dreapta la stânga. Ca să le afișăm de la stânga la dreapta,…
- Dublarea cifrelor impareDoubling the odd digitsFiecare cifră impară a lui n apare de două ori în rezultat. Construim rezultatul de la…
- Eliminarea cifrelor pareRemoving the even digitsConstruim un număr nou din cifrele impare ale lui n, păstrând ordinea lor. Cifrele vin…
- Înlocuirea unei cifre cu altaReplacing one digit with anotherÎnlocuiește în n fiecare apariție a cifrei x cu cifra y. Reconstruim numărul de la…
- Număr palindromPalindrome numberUn număr este palindrom dacă se citește la fel de la stânga la dreapta și de la dreapta…
- Numărul de cifre ale unui numărNumber of digits of a numberNumără cifrele lui n tăind la fiecare pas ultima cifră (n / 10) până când numărul devine…
- Oglinditul unui numărReverse of a numberConstruiește numărul format din cifrele lui n scrise în ordine inversă. La fiecare pas…
- Prima cifră a unui numărFirst digit of a numberPrima cifră (cea din stânga) rămâne după ce tăiem toate celelalte cifre: împărțim la 10…
- Produsul cifrelor unui numărProduct of the digits of a numberÎnmulțește cifrele lui n. Produsul pornește de la 1 (elementul neutru al înmulțirii), nu…
- Suma cifrelor unui numărSum of the digits of a numberAdună cifrele lui n. Ultima cifră se obține cu n % 10, apoi este eliminată cu n / 10.…
0%
Divizibilitate și numere prime
Divisibility and prime numbers · 17 algoritmi
- Cmmdc prin împărțiri repetate (algoritmul lui Euclid)GCD by repeated division (Euclid's algorithm)Cel mai mare divizor comun nu se schimbă dacă înlocuim perechea (a, b) cu (b, a % b).…
- Cmmdc prin scăderi repetateGCD by repeated subtractionScădem numărul mai mic din cel mai mare până când devin egale; valoarea comună este…
- Cel mai mic multiplu comunLeast common multipleSe folosește relația cmmdc(a, b) * cmmmc(a, b) = a * b. Calculăm cmmdc-ul cu algoritmul…
- Descompunerea în factori primiPrime factorizationÎncercăm factorii d = 2, 3, 4, ... și împărțim n la d de câte ori se poate, numărând de…
- Divizorii primi ai unui numărPrime divisors of a numberEste descompunerea în factori primi, din care afișăm doar factorii, fără exponenți.…
- Divizorii proprii ai unui numărProper divisors of a numberDivizorii proprii sunt divizorii diferiți de 1 și de n. Folosim aceleași două treceri ca…
- Divizorii unui numărDivisors of a numberDivizorii vin în perechi: dacă d divide n, atunci și n / d divide n, iar unul dintre ei…
- Indicatorul lui EulerEuler's totient functionφ(n) este numărul valorilor din 1..n prime cu n. Dacă p1, p2, ... sunt divizorii primi…
- Număr perfectPerfect numberUn număr este perfect dacă este egal cu suma divizorilor săi mai mici decât el (6 = 1 +…
- Numărul divizorilorNumber of divisorsPentru fiecare d cu d * d <= n care divide n numărăm doi divizori, d și n / d, cu…
- Perechi de numere prime gemenePairs of twin primesDouă numere prime sunt gemene dacă diferența lor este 2 (de exemplu 11 și 13). Afișăm…
- Numere prime între eleCoprime numbersDouă numere sunt prime între ele dacă singurul lor divizor comun este 1, adică cmmdc(a,…
- Primele n numere primeThe first n prime numbersLuăm pe rând candidații 2, 3, 4, ... și îi testăm cu testul de primalitate până la √x.…
- Simplificarea unei fracțiiSimplifying a fractionO fracție a / b devine ireductibilă dacă împărțim numărătorul și numitorul la cmmdc(a,…
- Suma divizorilorSum of divisorsAdunăm divizorii în perechi (d și n / d) pentru d * d <= n; când n este pătrat perfect,…
- Test de primalitatePrimality testUn număr este prim dacă are exact doi divizori: 1 și el însuși (deci 0 și 1 nu sunt…
- Ultima cifră a lui x la puterea yLast digit of x to the power yUltima cifră a unui produs depinde doar de ultimele cifre ale factorilor. Ultimele cifre…
0%
Șiruri de numere citite pe rând
Number sequences read one at a time · 13 algoritmi
- Cea mai lungă secvență de elemente egaleLongest run of equal elementsO secvență înseamnă elemente aflate pe poziții consecutive. lung este lungimea secvenței…
- Cel mai mare termen Fibonacci cel mult egal cu nLargest Fibonacci term not greater than nGenerăm termenii șirului lui Fibonacci (1, 1, 2, 3, 5, ...) cât timp următorul termen nu…
- Cele mai mari două valoriThe two largest valuesȚinem minte cea mai mare valoare (max1) și a doua (max2). Dacă numărul nou depășește…
- Citirea unui șir terminat cu 0Reading a sequence terminated by 0Nu știm dinainte câte numere urmează: citim până la primul 0, care doar marchează…
- Cmmdc-ul mai multor numereGCD of several numberscmmdc(a, b, c) = cmmdc(cmmdc(a, b), c). Păstrăm în rez cmmdc-ul numerelor citite până…
- Al n-lea termen al șirului lui FibonacciThe n-th term of the Fibonacci sequenceȘirul lui Fibonacci începe cu 1, 1 și fiecare termen este suma celor doi dinaintea lui:…
- Maximul și minimul unui șirMaximum and minimum of a sequenceSe citesc n și apoi n numere întregi. Maximul și minimul pornesc de la primul număr…
- Numărarea elementelor cu o proprietateCounting elements with a propertySe citesc n și n numere naturale. Numărăm câte dintre ele sunt pare și câte au ultima…
- Numărul de schimbări de semnNumber of sign changesSe citesc n numere nenule. O schimbare de semn are loc între doi termeni consecutivi de…
- Perechi de termeni consecutivi cu o proprietatePairs of consecutive terms with a propertyNumărăm perechile de termeni aflați unul după altul care au aceeași paritate. Un șir de…
- Verificarea unei progresii aritmeticeChecking an arithmetic progressionUn șir este progresie aritmetică dacă diferența dintre doi termeni consecutivi este…
- Verificarea unui șir crescătorChecking a non-decreasing sequenceȘirul este crescător dacă fiecare număr este cel puțin egal cu cel dinaintea lui.…
- Suma și media aritmeticăSum and arithmetic meanSe citesc n și n numere întregi; se afișează suma și media lor aritmetică, cu două…
0%
Baze de numerație
Number bases · 6 algoritmi
- Conversia din baza 10 în baza bConverting from base 10 to base bÎmpărțim repetat n la b; resturile sunt cifrele în baza b, dar obținute de la ultima…
- Conversia în baza 10 cu puterile bazeiConverting to base 10 using powers of the baseVarianta pentru b <= 10, când numărul se poate citi ca întreg: cifrele lui se extrag de…
- Conversia din baza b în baza 10Converting from base b to base 10Numărul în baza b se citește ca text (poate conține A..F), apoi se aplică schema lui…
- Conversia între două baze oarecareConverting between any two basesTrecem prin baza 10: întâi transformăm numărul din baza b1 în baza 10 (schema lui…
- Numărul de biți 1 din scrierea în baza 2Number of 1 bits in binaryCifrele în baza 2 se obțin la fel ca cifrele în baza 10, doar că împărțim la 2: ultima…
- Verificarea unei puteri a lui 2Checking for a power of 2O putere a lui 2 are în baza 2 un singur bit de 1 (de exemplu 64 = 1000000). Scăzând 1,…
0%
Tablouri unidimensionale (vectori)
One-dimensional arrays (vectors) · 11 algoritmi
- Citirea și afișarea unui vectorReading and printing an arrayUn vector păstrează mai multe valori de același tip, accesate prin indice. Declarăm…
- Eliminarea elementelor pareRemoving the even elementsÎn loc să ștergem elementele pare unul câte unul (fiecare ștergere mută tot restul…
- Inserarea unei valori după fiecare element parInserting a value after every even elementParcurgem vectorul de la sfârșit spre început. Când v[i] este par, mutăm elementele de…
- Inserarea unui element pe o pozițieInserting an element at a positionCa să punem val pe poziția poz, facem loc: mutăm elementele v[poz..n] cu o poziție la…
- Inversarea unui vectorReversing an arrayInterschimbăm primul element cu ultimul, al doilea cu penultimul și așa mai departe:…
- Maximul și pozițiile pe care apareThe maximum and the positions where it appearsSpre deosebire de un șir citit pe rând, un vector poate fi parcurs de mai multe ori: la…
- Permutarea circulară la dreaptaCircular shift to the rightFiecare element se mută cu o poziție la dreapta, iar ultimul ajunge pe prima poziție.…
- Permutarea circulară la stângaCircular shift to the leftFiecare element se mută cu o poziție la stânga, iar primul ajunge pe ultima poziție.…
- Ștergerea elementului de pe o pozițieDeleting the element at a positionCa să ștergem elementul de pe poziția poz, mutăm elementele de după el cu o poziție la…
- Suma elementelor de pe pozițiile pare și impareSum of the elements on even and odd positionsAtenție la diferența dintre poziție (indicele i) și valoare (v[i]). Paritatea se…
- Verificarea unui vector simetricChecking a symmetric arrayUn vector este simetric (palindrom) dacă v[i] = v[n - i + 1] pentru orice i. Comparăm…
0%
Sortare și căutare
Sorting and searching · 10 algoritmi
- Căutarea binarăBinary searchFuncționează doar pe un vector sortat crescător. Comparăm x cu elementul din mijlocul…
- Căutarea secvențialăLinear searchVerificăm elementele pe rând, de la primul, până găsim valoarea x sau terminăm vectorul.…
- Interclasarea a doi vectori sortațiMerging two sorted arraysDin doi vectori sortați crescător construim un al treilea, tot sortat. Comparăm…
- Prima poziție cu valoare mai mare sau egală cu xFirst position with a value greater than or equal to xVarianta de căutare binară care nu se oprește la prima potrivire: într-un vector sortat…
- Sortarea cu std::sortSorting with std::sortBiblioteca <algorithm> are funcția sort, care ordonează în O(n log n). Primește…
- Sortarea după două criteriiSorting by two criteriaOrdonăm numerele crescător după ultima cifră, iar numerele cu aceeași ultimă cifră…
- Sortarea prin inserțieInsertion sortCa la aranjarea cărților de joc în mână: primele i - 1 elemente sunt deja sortate, iar…
- Sortarea prin metoda bulelorBubble sortParcurgem vectorul și interschimbăm oricare două elemente vecine aflate în ordine…
- Sortarea prin numărareCounting sortCând valorile sunt numere naturale mici (aici 0..10000), nu comparăm elemente: numărăm…
- Sortarea prin selecțieSelection sortPentru fiecare poziție i, de la 1 la n - 1, căutăm minimul din v[i..n] și îl aducem pe…
0%
Frecvență, sume parțiale și ciurul lui Eratostene
Frequency arrays, prefix sums and the Sieve of Eratosthenes · 10 algoritmi
- Cifrele comune a două numereCommon digits of two numbersMarcăm în doi vectori de 10 poziții ce cifre apar în fiecare număr (aparA[c], aparB[c]).…
- Ciurul lui EratosteneSieve of EratosthenesGăsește toate numerele prime până la n. Pornim cu toate numerele nemarcate; pentru…
- Elementul majoritarMajority elementElementul majoritar apare de mai mult de n / 2 ori. Algoritmul prin vot (Boyer-Moore)…
- Numărul lipsă dintr-o permutareThe missing number in a permutationSe dau n și n - 1 numere distincte din mulțimea {1, 2, ..., n}; unul singur lipsește.…
- Secvența de lungime k cu suma maximăSubarray of length k with the maximum sumFereastra glisantă: calculăm suma primelor k elemente, apoi mutăm fereastra cu câte o…
- Secvența de sumă maximă (algoritmul lui Kadane)Maximum subarray sum (Kadane's algorithm)Parcurgem vectorul și păstrăm suma secvenței curente, care se termină la poziția i. Dacă…
- Sume parțialePrefix sumss[i] = v[1] + v[2] + ... + v[i], cu s[0] = 0, se calculează într-o singură trecere: s[i]…
- Valorile distincte și frecvențele lorDistinct values and their frequenciesDupă ce am construit vectorul de frecvență, valorile distincte sunt indicii val cu…
- Marcarea intervalelor cu vectorul de diferențeMarking ranges with a difference arrayAvem n poziții, inițial 0, și m operații „adună 1 pe pozițiile a..b”. În loc să…
- Vectorul de frecvențăFrequency arrayPentru valori naturale mici (aici 0..1000), frecv[x] reține de câte ori a apărut…
0%
Fișiere text
Text files · 5 algoritmi
- Citirea până la sfârșitul fișieruluiReading until the end of the fileFișierul date.in conține numere întregi, dar nu știm câte. Expresia fin >> x întoarce…
- Numărarea valorilor dintr-un fișierCounting the values in a fileFișierul date.in conține pe prima linie un număr natural k, iar pe următoarele linii un…
- Prelucrarea unui fișier pe liniiProcessing a file line by linegetline(fin, linie) citește un rând întreg, cu tot cu spații, până la '\n'. Bucla while…
- Scrierea formatată într-un fișierFormatted writing to a fileSe citește n din date.in și se scriu în date.out numerele de la 1 la n, câte cinci pe un…
- Suma numerelor de pe fiecare linieSum of the numbers on each lineFiecare linie din date.in conține câteva numere întregi, în număr necunoscut. Citim…