Informatică, întrebare adresată de 4Ionut, 8 ani în urmă

Salut!Voi cum a ti proceda la problema asta avand in vedere ca nu se pot folosi vectori?
Nu stiu cum se ofera puncte, coroana etc, va rog sa imi spuneti voi pe ce sa apas, multumesc!
Cerință
Această problemă este una dintre cele mai clasice probleme de informatică și logică matematica, care se regăsește și în multe întrebări de interviu: ți se dau n - 1 numere distincte cu valori între 1 și n. Identifică numărul din intervalul [1, n] care nu se găsește printre valorile citite.

Date de intrare
Pe prima linie se află numărul natural n. Pe a doua linie se găsesc n - 1 numere naturale cuprinse între 1 și n.

Date de ieșire
Se afișează numărul lipsă din intervalul dat.

Restricții
1 ≤ n ≤ 1 000 000
Încearcă să rezolvi problema fără să folosești șiruri
Exemplu
Date de intrare
5
2 5 1 4
Date iesire
3


Apollyon: dacă te lasă cu map poți crea unul cu numerele între 1 - n ca și chei și frecvența lor, cea care are frecvența 0 o afișezi.
andrei750238: map, unordered_set sunt structuri de date recomandate pentru a mentine solutia flexibila (daca ti se modifică cerinta si iti lipsesc 3-4 elemente poti modifica usor )
andrei750238: solutia de clasa a 9-a e sa faci suma tuturor elementelor si apoi suma celor n-1 elemente. Diferența dintre cele 2 este valoarea lipsa

Răspunsuri la întrebare

Răspuns de andrei750238
2

► Solutie simpla, clasa a IX-a, rigida, nerecomandata in practica:

#include <iostream>

using namespace std;

int main() {

int n, curent, suma_total, suma_gasite=0, element_lipsa;

//Citeste numarul de valori, valorile si calculeaza suma

cin >> n;

for (int i = 1; i < n; i++) {

 cin >> curent;

 suma_gasite += curent;

}

//Determina suma tuturor elementelor din interval - suma gauss

suma_total = n * (n + 1) / 2;

//Elementul lipsa e diferenta dintre cele doua sume

element_lipsa = suma_total - suma_gasite;

cout << element_lipsa;

}

Elementul lipsa e egal cu diferenta dintre suma tuturor elementelor din multime si elementele citite


4Ionut: Geniala idee!
4Ionut: cum iti ofer puctele?
Alte întrebări interesante