3. Scrieţi programul C++ care citeşte din fişierul text DATE.TXT numărul întreg n (1≤n≤10000) şi un şir de n perechi de numere întregi a b (1≤a≤b≤32000), fiecare pereche fiind scrisă pe o linie nouă a fişierului, cu un spaţiu între cele două numere. Programul afişează pe ecran pentru fiecare pereche a,b cel mai mare număr natural din intervalul închis [a,b] care este o putere a lui 2 sau numărul 0 dacă nu există nicio putere a lui 2 în intervalul respectiv. Un număr p este puterea lui 2 dacă există un număr natural k astfel încât p=2^k .
Exemplu: dacă fişierul DATE.TXT conţine numerele
3
2 69
10 20
19 25
se va afişa: 64 16 0.
Răspunsuri la întrebare
Răspuns de
4
Răspuns:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream f("date.in");
int n, a, b, i, p;
f>>n;
for(i=1; i<=n; i++)
{
f>>a>>b;
p=1;
while(p*2<=b)
{
p=p*2;
}
if(p>=a)
cout<<p<<" ";
else
cout<<"0"<<" ";
}
f.close();
return 0;
}
Explicație:
nedeleadavid:
Mersi, chiar m-ai ajutat!
Alte întrebări interesante
Geografie,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Chimie,
9 ani în urmă
Matematică,
9 ani în urmă