Sunteți pe pagina 1din 2

Vom realiza conversie din baza 10 in baza 2, fara a construi numarul.

in baza 2

#include<iostream>
using namespace std;

int n;

int testare(int n)
{
int r1=n%2,ok=0,r2;
while(n!=0)
{ r2=n/2%2;
if(r1==r2)
{
ok=1;
break;
}
n=n/2;
r1=r2;
}
if(ok==1)
return 0;
else
return 1;

}
int main()
{
cout<<"n=";cin>>n;
cout<<testare(n);
}
#include <iostream>
#include<fstream>
int v[91],x,nr,n,i;
using namespace std;

int main()
{
ifstream f("numere.txt");
f>>n;
while(f>>x)
v[x]++;

for(i=10;i<=99;i++)
if(v[i]>0)
{
nr=nr+v[i];
if(nr>=n)
{ cout<<i<<" ";
break;
}
}
if (nr<n)
cout<<"NU SE POATE";
}

Explicatie : Citim n si apoi succesiv valorile din fisier,calculand pentru fiecare numarul de
aparitii.
Parcurg vectorul de frecventa de la 10 la 99 si adunam frecventele, cand obtin suma cel
putin n ,aceea valoare pentru care a am adunat frecventa este cea cautata
Alg.utilizat este liniar... Este eficient dpdv al spatiului de memorie deorece am folosit doar
variabile simple si un vector de frecventa

S-ar putea să vă placă și