Sunteți pe pagina 1din 2

ALGORITMI ELEMENTARI

1. CMMDC (Algoritmul lui Euclid)


if(inv==m)
cout<<palindrom;
while(b)
else
cout<<nu e palindrom;
{r=a%b;
8. Interschimbare
a=b;
a) cu variabil auxiliar
b=r;}
x=a;
x=b;
cout<<cmmdc: <<a;
a=b;
b=a;
b=x;
a=x;
2. Afiarea tuturor divizorilor unui numr
b) cu sum
c) cu diferen
for(i=1;i<=n/2;i++)
a=a+b;
a=a-b;
if(n%i==0)
b=a-b;
b=a+b;
cout<<i<< ;
a=a-b;
a=b-a;
cout<<n;
9. Compunerea unui numr din cifrele sale
3. Descompunerea n factori primi a unui numr
a) n ordinea citirii
d=2;
cout<<nr. cifre: ; cin>>n;
while(n>1)
x=0;
{p=0;
for(i=1;i<=n;i++)
while(n%d==0)
{cin>>c;
{p++;
x=x*10+c;}
n=n/d;}
cout<<x;
if(p>0)
b) n ordinea invers citirii
cout<<d<< la puterea <<p<<endl;
cout<<nr. cifre: ; cin>>n;
d++;
x=0; p=1;
}
for(i=1;i<=n;i++)
{cin>>c;
4. Verificarea unui numr dac este prim
x=x+c*p;
ok=1;
p=p*10;}
for(i=2;i<=sqrt(n)&&ok;++i)
cout<<x;
if(n%i==0)
ok=0;
10. Determinare minim/maxim
if(ok) cout<<nr. prim";
cin>>n>>x;
else cout<<nr. neprim;
min=x;
for(i=2;i<=n;i++)
5. Prelucrarea cifrelor unui numr
{cin>>x;
while(n!=0)
if(x<min) min=x;}
{ //prelucrare cu n%10
n=n/10;}
11. irul lui Fibonacci
De exemplu suma cifrelor unui numr
cin>>a>>b;//citirea primilor 2 termeni
s=0;
for(i=3;i<=n;i++) //se va calcula al n-lea termen
while(n)
{c=a+b;
{s=s+n%10;
a=b;
n=n/10;}
b=c;}
cout<<s;
cout<<c;
6. Inversarea ordinii cifrelor unui numr
inv=0;
while(n)
{inv=inv*10+n%10;
n=n/10;}
7. Verificarea unui numr dac este palindrom
m=n; //apoi algoritmul 6

ALGORITMI ELEMENTARI
Pentru vectori
1. Sortare
a) prin metoda bulelor (BubbleSort)
ok=1;
while(ok)
{ok=0;
for(i=1;i<n;++i)
if(a[i]>a[i+1])
{x=a[i];
a[i]=a[i+1];
a[i+1]=x;
ok=1;}
b) prin selecie (cu maxim)
for(i=1;i<n;++i)
{min=a[i]; k=i;
for(j=i+1;j<=n;++j)
if(a[j]<min)
{min=a[j];
k=j;}
x=a[k];a[k]=a[i];a[i]=x;}
2. Interclasarea a dou iruri sortate se obtine un
nou sir sortat (eficient) din elementele celor doua.
i=1; j=1; k=1;
while(i<=m&&j<=n)
if(a[i]<b[j]) c[k++]=a[i++];
else
c[k++]=b[j++];
while(i<=m)
c[k++]=a[i++];
while(j<=n)
c[k++]=b[j++];
for(i=1;i<k;i++)
cout<<c[i]<< ;
3. Cutarea binar
gasit=0;
i=1; j=n;
while(i<=j&&!gasit)
{m=(i+j)/2;
if(a[m]==x) gasit=1;
else if(x<a[m])
j=m-1;
else
i=m+1;}
if(gasit)
cout<<gasit pe pozitia <<m;
else
cout<<nu a fost gasit;

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