Fișierul "Date.in" conține cel mult un milion de numere. Toate numerele sunt puterea lui 2. Se citeste un număr n de la tastatura.
Sa se afișează numărul din fișier care s-ar găsi pe poziția n atunci când valorile din fișier sunt ordonate crescător.
Restricție: puterea trebuie sa fie mai mica sau egal cu 15
Răspunsuri la întrebare
Răspuns de
1
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("date.in");
int num, i, fr[16], exp, gasit, indcautat, n, suma,nrcautat=1;
int main()
{
cin >> n;
while (f>>num)
{
exp=0;
while (num>1)
{
++exp; num=num/2;
}
++fr[exp];
}
for (i=0; i<=15; ++i)
{
if (fr[i]>0) suma=suma+fr[i];
if (suma>=n) { gasit=1; indcautat=i; break; }
}
if (!gasit) cout << "nu exista";
else
{
for (i=1; i<=indcautat; ++i)
nrcautat=nrcautat*2;
cout << nrcautat;
}
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Istorie,
8 ani în urmă
Franceza,
8 ani în urmă
Religie,
9 ani în urmă
Limba română,
9 ani în urmă