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.
Răspunsuri la întrebare
Răspuns de
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
Alte întrebări interesante
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Istorie,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Engleza,
9 ani în urmă