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

Suma 1 + 2 + 3 + ... + N în C++

Dându-se un număr natural n, să se afle suma primelor n numere naturale (1 + 2 + 3 + … + n).

Exemplu. Pentru n = 4, avem suma 1 + 2 + 3 + 4 = 10.

Explicarea algoritmului (suma Gauss)

O metodă naivă ar fi să parcurgem cu o structură repetitivă (precum cea for) numerele de la 1 la n, adunând fiecare număr la sumă. Totuși, există o metodă mai eficientă.

Am învățat în clasa a cincea o formulă foarte importantă în matematică — suma Gauss. Formula este următoarea:

https://i.ibb.co/b24hThv/image.png

Așadar, pentru numărul nostru n, vom afișa formula menționată mai sus: 1 + 2 + 3 + … + n = n * (n + 1) / 2.

Implementarea algoritmului în C++

Algoritmul în C++ este următorul:

#include <iostream>

using namespace std;

int main()
{
    //Declarăm și citim numărul dorit, n
    int n;
    cin >> n;

    //Calculăm și afișăm suma 1 + 2 + 3 + … + n, folosind formula de mai devreme
    int suma = n * (n + 1) / 2;
    cout << suma;
    return 0;
}

Bibliografie sau alte resurse

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

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

© 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