Vous êtes sur la page 1sur 6

Algoritmi elementari

1.Se dau n numere întregi. Calculaţi cel mai mic/mare dintre cele n numere date.

#include <iostream>
using namespace std;
int main()
{int n,x,min,max;
cin>>n;
cin>>x;
n=n-1;
min=x;
max=x;
while(n!=0)
{
cin>>x;
if(x>max) max=x;
if(x<min) min=x;
n=n-1;
}
cout<<min<<" "<<max;
return 0;
}
2. Suma dintre minim si maxim

#include <iostream>
using namespace std;
int main()
{int n,x,min,max;
cin>>n;
cin>>x;
n=n-1;
min=x;
max=x;
while(n!=0)
{
cin>>x;
if(x>max) max=x;
if(x<min) min=x;
n=n-1;
}
cout<<min+max;
return 0;
}
3.Se citesc numere pana la intalnirea valorii 0. Aflati maximul.
#include <iostream>

using namespace std;

int main()
{int x,min,max;

cin>>x;
if (x==0)
cout<<"Nu exista";
else
{max=x;
while(x!=0)
{
cin>>x;
if(x>max && x!=0) max=x;

}
cout<<max;}
return 0;
}
Să se scrie un program care citește un șir de n numere naturale şi determină numărul din
șir care are prima cifră minimă. Dacă există mai multe numere cu prima cifră minimă, se va
determina cel mai mare dintre acestea.

#include <iostream>

using namespace std;

int main()
{int x,min,max,copie,nr,n,y;
cin>>n;
cin>>x;
n=n-1;

copie=x;
while(copie>9)
{copie=copie/10;}
min=copie;
nr=x;
while(n!=0)
{
cin>>y;
n=n-1;
copie=y;
while(copie>9)
{copie=copie/10;}
if(copie<min) {min=copie;
nr=y;}
if (copie==min){ if(x>y) nr=x;
else nr=y;}
}
cout<<nr;
return 0;

}
Se citește de la tastură un număr natural n, apoi n numere naturale. Să se calculeze suma obținută
prin adunarea primei cifre a fiecărui număr.

#include <iostream>

using namespace std;

int main()
{int n,x,cif,s=0;
cin>>n;

while(n!=0)
{
cin>>x;

n=n-1;
while(x>9) {x=x/10;}
s=s+x;
}

cout<<s;

return 0;
}
Să se scrie un program care să determine numărul de apariţii a primei cifre în scrierea unui număr
natural citit de la tastatură.

#include <iostream>

using namespace std;

int main()
{int n,nr=0,copie;
cin>>n;
copie=n;
while(copie>9)
{

copie=copie/10;
}

while(n!=0)
{

if(n%10==copie)
nr++;
n=n/10;
}
cout<<nr;

return 0;
}
Numerele divizibile cu 3 obtinute dupa eliminarea unei cifre
#include <iostream>

using namespace std;

int main()
{int n,i,copie,y,p,nr=0,ok=0;
cin>>n;
for(i=0;i<=9;i++)
{ copie=n;
y=0;
p=1;
while(copie!=0)
{if(copie%10!=i) {y=copie%10*p+y;
p=p*10;}

copie=copie/10;
}
if((y!=n) && (y%3==0) ){cout<<y<<" "; nr++;}
}

cout<<nr;

return 0;
}