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.
Folosește următoarele shortcuturi pentru a naviga mai ușor pe platformă.
Meniu shortcuturi | ? |
Căutare probleme sau utilizatori | / |
Navigare printre rezultatele căutării | ↑, ↓ |
Meniu de contact și feedback | CTRL + Shift + F |
Ieșire din meniuri | Esc |
Setări editor | CTRL + Shift + S |
Schimbare stil editor | CTRL + Shift + E |
Șabloane de cod | CTRL + Shift + 1/2/3 |
Golire editor | CTRL + Shift + 4 |
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
.
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:
Așadar, pentru numărul nostru n
, vom afișa formula menționată mai sus: 1 + 2 + 3 + … + n = n * (n + 1) / 2
.
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;
}