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

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 mariocotoarba
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