Informatică, întrebare adresată de Cristian1429, 8 ani în urmă

Se dau n numere naturale. Determinați cele mai mari două numere cu trei cifre care nu apar printre numerele date

Răspunsuri la întrebare

Răspuns de Cosmyqn
0

Răspuns:

#include <iostream>

using namespace std;

const int MAX_N = 1000;

int n, nums[MAX_N];

bool used[1000]; // utilizat[i] = true dacă numărul i a fost utilizat

int main() {

cin >> n;

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

cin >> nums[i];

if (nums[i] >= 100 && nums[i] <= 999) {

used[nums[i]] = true;

}

}

int max1 = -1, max2 = -1;

for (int i = 999; i >= 100; i--) {

if (!used[i]) {

if (i > max1) {

max2 = max1;

max1 = i;

} else if (i > max2) {

max2 = i;

}

}

}

cout << max1 << " " << max2 << endl;

return 0;

}

Explicație:

Acest program primește numerele naturale ca intrare și utilizează un vector bool "used" pentru a marca numerele cu trei cifre care au fost deja utilizate. Apoi, programul parcurge numerele de la 999 la 100 și determina cele mai mari două numere care nu au fost marcate ca fiind utilizate. În final, programul afișează cele două numere cele mai mari.

Alte întrebări interesante