Contact și feedback

Nu obții 100 de puncte sau ai nelămuriri în privința problemelor? Scrie-mi pe Instagram.


Ai găsit o greșeală, vrei să raportezi un utilizator sau vrei să comunici altceva? Folosește formularul de contact.


Vrei să ne transmiți o părere despre platformă? Folosește formularul de feedback.

Shortcuturi

Folosește următoarele shortcuturi pentru a naviga mai ușor pe platformă.

Generale

Meniu shortcuturi?
Căutare probleme sau utilizatori/
Navigare printre rezultatele căutării↑, ↓
Meniu de contact și feedbackCTRL + Shift + F
Ieșire din meniuriEsc

Editor probleme

Setări editorCTRL + Shift + S
Schimbare stil editorCTRL + Shift + E
Șabloane de codCTRL + Shift + 1/2/3
Golire editorCTRL + Shift + 4

Al N-lea termen dintr-o progresie geometrică

Această lecție este despre cum se calculează termenul general al unei progresii geometrice în C++.

Ne propunem să aflăm al n-lea termen al progresiei geometrice cu primul termen a și rația r.

Explicarea algoritmului

Știm că o progresie geometrică este de forma a, a * r, a * r^2, a * r^3, …. Practic, termenul i (i ≥ 1) este egal cu a * r^(i - 1), unde a^b reprezintă operația a la puterea b.

Așadar, pentru a găsi termenul n al unei progresii aritmetice, vom calcula a * r^(n - 1).

Rezolvare în C++

Să rezolvăm problema în C++. Asumăm că n ≥ 1.

#include <iostream>

using namespace std;

int ridicareLaPutere(int baza, int exponent) {
    //Returnează baza la puterea exponent. Se poate folosi ridicarea la putere în timp logaritmic
    int r = 1;
    for(int i = 1; i <= exponent; i++) {
        r = r * baza;
    }
    return r;
}

int progresieGeom(int n, int primulTermen, int ratie) {
    //Folosim formula g(n) = primulTermen * ratie^(n - 1)
    return primulTermen * ridicareLaPutere(ratie, n - 1);
}

int main()
{
    int n, a, r;
    cin >> n >> a >> r;
    cout << "Al " << n << "-lea termen al progresiei geometrice este " << progresieGeom(n, a, r);
    return 0;
}

Obține medalia mult dorită. Devino As la olimpiadă.

Curs complet de olimpiadă, pregătit de olimpici de la Oxford și TU Delft.

Cuprinsul lecției

Se încarcă…

Citește și

Algoritm recursiv pentru căutare binară (clasa a X-a)Verificare dacă șir de caractere este palindrom în C++Numărul de apariții al unui număr într-un vector în C++Ridicarea la putere în timp logaritmic în C++. Exponențiere rapidăAl N-lea termen Fibonacci în C++Materia pentru olimpiada de informatică - tot ce trebuie să știiMediana unui șir de valori în C++Vectori de frecvență (de apariții) în C++Verifică dacă o literă este vocală în C++Valoarea absolută (modulul) unui număr în C++Radicalul unui număr în C++ (rădăcina pătrată)Codul ASCII (tabel complet)Recursivitate în C++Afișarea divizorilor primi ai unui număr în C++Suma elementelor unui vector recursiv în C++Cel mai semnificativ bit în C++Tipuri de date în C++: numere întregi, reale, caractere și alteleNumărul de divizori al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Cum să calculezi instant 2 la puterea N în C++Cum să citești și să afișezi în fișiere în C++Maximul și minimul a trei valori în C++Cea mai lungă secvență de elemente crescătoare în C++Suma divizorilor numerelor de la 1 la N (Folosind ciurul lui Eratostene)Maximul și minimul a n valori în C++Ce este o variabilă unsigned în C++?Instrucțiunea de decizie în C++: if, else, switch, caseCitirea și afișarea matricelor în C++Ce înseamnă endl în C++?Indicatorul lui Euler în C++Pointer în C++. Variabile de tipul char * (char steluță)Numărul permutărilor în C++ (formula permutărilor)Verifică dacă un bit de pe o anumită poziție este 1 sau 0 în C++Cel mai mic număr cu suma cifrelor N în C++Maximul și minimul unui vector în C++Funcții predefinite în C++ (matematice, șiruri de caractere)Distanța dintre două puncte în C++Matrice Fibonacci - al n-lea termen Fibonacci în timp logaritmicBordarea unei matrice în C++Generarea șirului Fibonacci generalizat în C++Numărul combinărilor în C++ (formula combinărilor)Căutare binară în C++Al N-lea termen dintr-o progresie geometricăSortare crescătoare recursivă în C++ - Merge sort și Bubble sortFactorialul unui număr în C++Copiuțe: Cifrele unui numărAria unui triunghi folosind coordonatele acestora în C++Ce este o funcție void în C++?Citește un șir de caractere cu spații în C++Numărul de cifre ale factorialului unui numărMatrice în C++. Declararea și parcurgerea tablourilor bidimensionaleTransformarea unui număr din baza 2 în baza 10 în C++De ce cer unele probleme răspunsul modulo 666013 sau modulo 1.000.000.007?Cifrele unui număr. Prelucrarea cifrelor unui număr în C++Oglinditul unui număr în C++Ce înseamnă variabilă globală și locală în C++?Verificarea unui an bisect în C++Șirul lui Fibonacci în C++Transformarea unei litere mici în literă mare în C++Matrice pătratice în C++. Diagonala principală și secundarăVerifică dacă un caracter este cifră în C++Aflarea sumei primelor N sume GaussOperații cu numere mari în C++ - Toate funcțiile explicateSuma 1 + 2 + 3 + ... + N în C++Afișarea elementelor unui vector recursiv în C++Interclasarea a doi vectori în C++Vectorii în C++: declarare și parcurgereCMMMC a două numere în C++ (cel mai mic multiplu comun)Instrucțiunea for (structuri repetitive)Instrucțiunea break (structuri repetitive)Comentarii în C++Aplicații cu ciurul lui Eratostene în C++: suma divizorilor, numărul divizorilorIndicatorul lui Euler al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Cum să afișezi partea întreagă a unui număr real în C++Tipul struct în C++. Ce sunt structurile de date neomogeneMaximul și minimul a două valori în C++Ciurul lui Eratostene în C++Numărul minim de peroane pentru o gară în C++Interschimbarea a două variabile în C++ (3 metode)Tutorial instalare CodeBlocks (ușor) - Introducere în informatică C++Numărul de divizori primi ai unui număr în C++Cel mai frecvent element dintr-un șir în C++Cifra maximă a unui număr recursiv în C++Șiruri de caractere în C++. Tot ce trebuie să știiAflă secolul unui an citit de la tastatură în C++Divide et Impera (metodă de programare C++)Aria și circumferința unui cerc în C++Verifică dacă un caracter este literă în C++Suma divizorilor unui număr în C++Verificare dacă un număr este palindrom în C++Cel mai mare divizor comun (CMMDC) a două numere în C++CMMDC recursiv a două numere naturale în C++Rădăcina cubică a unui număr în C++ (cube root)Instrucțiunea do while (structuri repetitive)Do while vs while în C++ - Care e diferența?Calculul combinărilor de n luate câte k (nCk) în C++Oglinditul recursiv al unui număr în C++Câte numere naturale sunt într-un interval dat? (C++)Numere triunghiulare. Verificarea unui număr triunghiularSuma numerelor naturale dintr-un interval dat în C++Transformarea unei litere mari în literă mică în C++Al N-lea termen dintr-o progresie aritmeticăVerifică dacă un număr aparține șirului Fibonacci în C++Transformarea unui număr din baza 10 în baza 2 în C++Inversarea unui vector în C++Cel mai puțin semnificativ bit în C++Verifică dacă un număr este par sau impar fără modulo în C++Funcții în C++. Ce sunt subprogrameleNumărul de divizori al unui număr în C++Numărul aranjamentelor în C++ (formula aranjamentelor)Verifică dacă un număr dat este o putere de 2 în C++Complexitatea unui algoritm (timp și spațiu) în C++Cel mai mic/mare divizor prim al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Verifică dacă o literă este mică sau mare în C++Cifra de control a unui numărVerifică dacă trei puncte sunt coliniare C++Combinatorică în C++: permutări, aranjamente, combinări și alteleInstrucțiunea while (structuri repetitive)Prima cifră a unui număr în C++Cifra maximă și minimă a unui număr în C++Vectorii în C++: citire și afișareInversarea unui șir de caractere în C++Structuri repetitive (while, do while, for, etc)Instrucțiunea continue (structuri repetitive)Verificare număr prim în C++ (Clasa a IX-a)

© Drepturi de autor

Echipa InfoAs își rezervă drepturile de autor pentru conținutul acestei pagini. Copierea conținutului fără acordul scris expres al InfoAs reprezintă o încălcare a Legii 8/1996 și va fi tratată ca atare.

Trimite lecția

Toată lecția

Doar videoclipul pe YouTube

Informatica devine ușoară cu InfoAs

Intră în cont