Sunteți pe pagina 1din 3

Algoritmi fundamentali in C++: prelucrarea cifrelor unui număr natural

while(n>0)
{
c=n%10; // extrag ultima cifra
//prelucrez cifra extrasă c
n=n/10; // elimin ultima cifra, pentru a avea acces la penultima
}

Exemplu de execuție pas cu pas:

n=1432

Prima repetare A doua repetare A treia repetare A patra repetare A cincea


while while while while repetare
while
1432>0(A) 143>0(A) 14>0(A) 1>0(A) 0>0(F)
c=1432%10=2 c=143%10=3 c=14%10=4 c=1%10=1 Se termină
Folosesc cifra 2 Folosesc cifra 3 Folosesc cifra 4 Folosesc cifra 1 repetarea
n=1432/10=143 n=143/10=14 n=14/10=1 n=1/10=0 while

Exemple clasice de aplicații

// Suma cifrelor lui n


 Ex. pentru n=1432, se va afișa 10
#include<iostream>
using namespace std;
int main()
{
int n,s,c;
cout<<"n=";
cin>>n;
s=0;
while(n>0)
{
c=n%10;
s=s+c;
n=n/10;
}
cout<<"Suma cifrelor="<<s;
return 0;
}
—————————————————————————–
// Numarul de cifre ale lui n
Ex. pentru n=1432, se va afișa 4
#include<iostream>
using namespace std;
int main()
{
int n, nr;
cout<<"n=";
cin>>n;
nr=0;
while(n>0)
{
nr=nr+1;
n=n/10;
}
cout<<"Nr. de cifre="<<nr;
return 0;

—————————————————————————–
// Inversul lui n
 Ex. pentru n=1432, se va afișa 2341
#include<iostream>
using namespace std;
int main()
{
int n, inv,c;
cout<<"n=";
cin>>n;
inv=0;
while(n>0)
{
c=n%10;
inv=inv*10+c;
n=n/10;
}
cout<<"Inversul="<<inv;
return 0;
}
—————————————————————————
// Palindrom
 Ex. pentru n=1432, se va afișa Nu, iar pentru n=1221, se va afișa Palindrom
#include<iostream>
using namespace std;
int main()
{
int n,aux,inv,c;
cout<<"n=";
cin>>n;
aux=n;
inv=0;
while(n>0)
{
c=n%10;
inv=inv*10+c;
n=n/10;
}
if(aux==inv)
cout<<"Palindrom";
else
cout<<"Nu";
return 0;
}

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