#2579 Putere2Interval
Cerința
Se citesc 3 numere naturale n, a și b. Afișați primele n puteri ale lui 2, în ordine crescătoare, din intervalul [a,b]. Dacă nu există cel puțin n puteri ale lui 2 în interval, atunci se vor afișa cele care există.
Date de intrare
Programul citește de la tastatură numărul n, a și b, separate prin spații.
Date de ieșire
Programul va afișa pe ecran puterile lui 2 din intervalul [a,b].
Restricții și precizări
1 ≤ n ≤ 60
1 ≤ a ≤ b < 2^64
Exemplu
Intrare
2 6 35
Ieșire
8 16
Explicație
În interval există 3 puteri ale lui 2, dar s-au afișat doar n dintre ele.
Sursa mea:
#include
using namespace std;
long long n,a,b;
int main()
{
cin>>n>>a>>b;
for(int i=a;i<=b && n!=0;i++)
if(!(i&(i-1)))
{
cout<
n--;
}
}
Este de 60%
boiustef:
nu se vede bn codul... de ce e de 60? ce a dat evaluarea ?
Răspunsuri la întrebare
Răspuns de
4
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
unsigned long long n, a, b, k,p=1,i;
cin >> n >> a >> b;
k=log2(a);
if (log2(a)!=(int)log2(a)) ++k;
for (i=1; i<=k; ++i) p*=2;
while (p<=b && n)
{
cout << p << " ";
--n; p*=2;
}
return 0;
}
using namespace std;
int main()
{
long long int n,a,b,x=1,cnt=0;
cin>>n>>a>>b;
while(x<=b && cnt!=n)
{
if(x>=a && x<=b) cout< x*=2;
}
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Biologie,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Franceza,
9 ani în urmă