~Wolf~
01-03-2020, 04:41 PM
Algoritmi cu cifre
NOTE!
-voi posta mai multi algoritmi in topicul acesta lasand reply-uri
-algoritmii nu ii voi posta neaparat zilnic
-in cazul oricarui fel de greseli/neintelegeri/corectari nu ezitati sa lasati un reply
Suma cifrelor unui numar natural
#include <iostream>
using namespace std;
unsigned int n,s; //declaram variabilele , n-numarul , s-suma; fiind globale ambele iau valoarea initiala 0
int main()
{
cin>>n; //citim numarul
while(n) //cat timp n este diferit de 0
{
s=s+n%10; //se creeaza suma cifrelor
n/=10; //"taiem" cifra pe care am adunat-o la suma: de ex pt 972 , va deveni 97, apoi 9 apoi 0(fiindca 9/10=0)
}
cout<<"Suma cifrelor numarului citit este: "<<s;//afisam suma
return 0;
}
Algoritm sume cifre pare/impare
#include <iostream>
using namespace std;
unsigned int n,s;
int main()
{
cin>>n;
while(n)
{
if((n%10)%2==0) //verificam paritatea numarului; ca sa va fie mai usor puteti declara o variabila c care sa ia valoarea n%10 si o puteti folosi in program
s=s+n%10;
/*
pentru cifre impare inlocuiti in if-ul de mai sus if((n%10)%2==1) sau if((n%10)%2!=0)
*/
n/=10;
}
cout<<"Suma cifrelor pare numarului citit este: "<<s;//afisam suma, alegeti voi daca sa fie cele pare sau impare si inlocuiti in text; eu am ales cele pare
return 0;
}
Cifra maxima
#include <iostream>
using namespace std;
unsigned int n,cmax; // declaram o variabila cmax care va fi initializata cu 0(declarare globala).Cu aceasta vom compara fiecare cifra a numarului n
int main()
{
cin>>n;
while(n)
{
if(n%10>cmax) // prima data cmax va lua valoarea unei cifre care este mai mare decat 0(fiindca se compara cu 0 initial), apoi se cauta cifra maxima
cmax=n%10; //cmax ia valoarea cifrei maxime
n/=10; //"taiem" cate o cifra a numarului
}
cout<<"Cifra maxima a numarului dat este: "<<cmax;
return 0;
}
Cifra minima
#include <iostream>
using namespace std;
unsigned int n,cmin; //declaram o variabila cmin care va lua valoarea primei cifre de la sfarsitul numarului
int main()
{
cin>>n;
cmin=n%10; //dam valoarea ultimei cifre a lui n, lui cmin;presupunem ca n=972 => cmin=2
n/=10; // n va deveni 97
while(n)
{
/*comparam ultima cifra a noului n(unde noul n=97) cu ultima cifra a numarului initial,
obtinandu-se, astfel, minimul.
-in cazul in care nu exista o cifra mai mica decat cmin , inseamna ca ultima cifra a numarului
este cea mai mica
*/
if(n%10<cmin)
cmin=n%10; //cmin ia valoarea cifrei minime
n/=10;
}
cout<<"Cifra minima a numarului dat este: "<<cmin;
return 0;
}
NOTE!
-voi posta mai multi algoritmi in topicul acesta lasand reply-uri
-algoritmii nu ii voi posta neaparat zilnic
-in cazul oricarui fel de greseli/neintelegeri/corectari nu ezitati sa lasati un reply
Suma cifrelor unui numar natural
#include <iostream>
using namespace std;
unsigned int n,s; //declaram variabilele , n-numarul , s-suma; fiind globale ambele iau valoarea initiala 0
int main()
{
cin>>n; //citim numarul
while(n) //cat timp n este diferit de 0
{
s=s+n%10; //se creeaza suma cifrelor
n/=10; //"taiem" cifra pe care am adunat-o la suma: de ex pt 972 , va deveni 97, apoi 9 apoi 0(fiindca 9/10=0)
}
cout<<"Suma cifrelor numarului citit este: "<<s;//afisam suma
return 0;
}
Algoritm sume cifre pare/impare
#include <iostream>
using namespace std;
unsigned int n,s;
int main()
{
cin>>n;
while(n)
{
if((n%10)%2==0) //verificam paritatea numarului; ca sa va fie mai usor puteti declara o variabila c care sa ia valoarea n%10 si o puteti folosi in program
s=s+n%10;
/*
pentru cifre impare inlocuiti in if-ul de mai sus if((n%10)%2==1) sau if((n%10)%2!=0)
*/
n/=10;
}
cout<<"Suma cifrelor pare numarului citit este: "<<s;//afisam suma, alegeti voi daca sa fie cele pare sau impare si inlocuiti in text; eu am ales cele pare
return 0;
}
Cifra maxima
#include <iostream>
using namespace std;
unsigned int n,cmax; // declaram o variabila cmax care va fi initializata cu 0(declarare globala).Cu aceasta vom compara fiecare cifra a numarului n
int main()
{
cin>>n;
while(n)
{
if(n%10>cmax) // prima data cmax va lua valoarea unei cifre care este mai mare decat 0(fiindca se compara cu 0 initial), apoi se cauta cifra maxima
cmax=n%10; //cmax ia valoarea cifrei maxime
n/=10; //"taiem" cate o cifra a numarului
}
cout<<"Cifra maxima a numarului dat este: "<<cmax;
return 0;
}
Cifra minima
#include <iostream>
using namespace std;
unsigned int n,cmin; //declaram o variabila cmin care va lua valoarea primei cifre de la sfarsitul numarului
int main()
{
cin>>n;
cmin=n%10; //dam valoarea ultimei cifre a lui n, lui cmin;presupunem ca n=972 => cmin=2
n/=10; // n va deveni 97
while(n)
{
/*comparam ultima cifra a noului n(unde noul n=97) cu ultima cifra a numarului initial,
obtinandu-se, astfel, minimul.
-in cazul in care nu exista o cifra mai mica decat cmin , inseamna ca ultima cifra a numarului
este cea mai mica
*/
if(n%10<cmin)
cmin=n%10; //cmin ia valoarea cifrei minime
n/=10;
}
cout<<"Cifra minima a numarului dat este: "<<cmin;
return 0;
}