Documente Academic
Documente Profesional
Documente Cultură
Cuprins
SumaCifrelorUnuiNumăr ................................................................................................................................... 1
Algoritm elementar de prelucrare a sumei cifrelor unui numar ..................................................................... 1
SumaCifrelorDiv3UnuiNumăr ....................................................................................................................... 1
cifreMaiMariDecat6....................................................................................................................................... 2
Șiruri de numere......................................................................................................................................... 2
sumaCifreNumărPar............................................................................................................................... 2
SumCifSauNrCif.................................................................................................................................... 2
SumCifNrCif.......................................................................................................................................... 3
SumCifNrCifDacaSeTerminaIn23......................................................................................................... 3
Ultimele2CifreIdentice........................................................................................................................... 4
patratePerfecte........................................................................................................................................ 4
numerePrime .......................................................................................................................................... 5
SirElementeDacaPrimSumaCifrelor ...................................................................................................... 5
SirElementeSumaCifrelorPrim .............................................................................................................. 5
celPuțin3CifrePenultimaNula ................................................................................................................ 6
SumaCifrelorUnuiNumăr
Algoritm elementar de prelucrare a sumei cifrelor unui numar
1. Se citeşte un număr natural n de la tastatură. Scrieţi un program în C/C++ care calculează suma
cifrelor numărului citit.
#include <iostream>
using namespace std; int s;int main(){int n; cout<<"n="; cin>>n;
while (n)
{s+=n%10; // construieste suma prin adaugarea ultimei cifra
n/=10;} //elimina ultima cifra, fiind prelucrata
cout<<"\nsuma cifrelor: "<<s;}
TABEL DE VARIAŢIE A VARIABILELOR
n while (n≠0) s+= n%10 n/=10 scrie s
123 123≠0A s=3 n=12
12≠0A s=5 n=1
1≠0A s=6 n=0
0≠0F - - 6
Variabila globală s este inițializată implicit cu 0, conform definiției!
SumaCifrelorDiv3UnuiNumăr
2/6
Algoritmul elementar:Suma cifrelor prof.Mariana IVAN
2. Se citeşte un număr natural n de la tastatură. Scrieţi un program în C/C++ care calculează suma cifrelor
numărului citit dacă sunt divizibile cu 3.
#include <iostream>
using namespace std; int s;int main(){int n; cout<<"n="; cin>>n;
while (n){if(n%10%3==0) s+=n%10; n/=10;}
cout<<"\nsuma cifrelor divizibile cu 3: "<<s;}
cifreMaiMariDecat6
3. Se citește un număr întreg n. Scrieți un program care calculează suma cifrelor numărului dat, dacă
numărul conține cifre mai mari decât 6 altfel va afișa "nu conține cifre ".
Șiruri de numere
sumaCifreNumărPar
4. Se citește un șir din n numere întregi. Scrieţi un program în C/C++ care calculează și afișează elementele
a căror suma cifrelor formează un număr par
Exemplu: n=5; 120 42 761 81 20;
va afișa: 42 761 20
#include <iostream>
using namespace std;
int main(){
int n, x, s; cin>>n;
for (int i=1; i<=n;i++)
{ cin>>x; int aux=x, s=0;
while (aux){s+=aux%10; aux/=10;}
if (s%2==0) cout<<x<<" ";
} }
SumCifSauNrCif
5. Se citește un șir format din n numere întregi. Scrieţi un program în C/C++ care afișează elementul
citit dacă suma cifrelor elementului curent este număr par altfel calculează și afișează numărul total de cifre,
corespunzător fiecărui element din șir.
3/6
Algoritmul elementar:Suma cifrelor prof.Mariana IVAN
#include <iostream>
using namespace std;
int main(){int n, x, s, nr; cin>>n;
for (int i=1; i<=n;i++)
{ cin>>x;
int aux=x; //copiez x in aux
int s=0, nr=0; //reset s, nr
while(aux){s+=aux%10;aux/=10;}
if(s%2==0) cout<<x<<"\t";
else {aux=x; //redefenire variabila
while(aux){nr++;aux/=10;}
cout<<nr<<"\t " ;}
} }
SumCifNrCif
6. Se citește un șir format din n numere întregi. Scrieţi un program în C/C++ care calculează și afișează
suma cifrelor dacă elementul curent este număr par altfel calculează și afișează numărul total de cifre,
corespunzător fiecărui element din șir.
#include <iostream>
using namespace std;
int main(){int n, x, s, nr; cin>>n;
for (int i=1; i<=n;i++)
{ cin>>x; int aux=x, s=0, nr=0;
if(x%2==0){while(aux)
{s+=aux%10;aux/=10;}
cout<<s<<" " ;}
else
{while(aux)
{nr++;aux/=10;}
cout<<nr<<" " ;}
} }
SumCifNrCifDacaSeTerminaIn23
7. Se citește un șir format din n numere întregi. Scrieţi un program în C/C++ care calculează și afișează
suma cifrelor dacă elementul curent se termină în 23, altfel calculează și afișează numărul total de cifre,
corespunzător fiecărui element din șir.
#include <iostream>
using namespace std;
int main(){int n, x, s, nr; cin>>n;
for (int i=1; i<=n;i++)
{ cin>>x; int aux=x, s=0, nr=0;
if(x%100==23){while(aux)
{s+=aux%10;aux/=10;}
cout<<s<<" " ;}
else
{while(aux)
{nr++;aux/=10;}
cout<<nr<<" " ;}
} }
Ultimele2CifreIdentice
8. Se citește un șir din n numere întregi. Scrieţi un program în C/C++ care calculează suma cifrelor dacă
elementul curent are ultimele două cifre identice și afișați numerele care respectă proprietatea. Dacă șirul
nu conține astfel de numere va afișa mesajul "nu", pe linie nouă.
#include <iostream>
using namespace std;
int main(){int n, x, s, ok=0;cin>>n;
for (int i=1; i<=n;i++)
{cin>>x;
if (x%10==x/10%10)
{ int aux=x, s=0;
while(aux){ s+=aux%10; aux/=10; }
cout<<x<<" "; ok=1;}
}
if(ok==0) cout<<"\nnu";
}
patratePerfecte
9. Se citește un șir din n numere întregi. Scrieţi un program în C/C++ care calculează și afișează suma
cifrelor dacă numerele sunt pătrate perfecte. Dacă șirul nu conține astfel de numere va afișa mesajul, pe linie
nouă"nu".
#include <iostream>
#include<math.h>
using namespace std;
int main(){int n, x, s, ok=0; cin>>n;
for (int i=1; i<=n;i++)
{cin>>x;
if (sqrt(x)==(int)sqrt(x))
5/6
Algoritmul elementar:Suma cifrelor prof.Mariana IVAN
numerePrime
10. Se citește un șir din n numere întregi. Scrieţi un program în C/C++ care calculează și afișează suma
cifrelor pentru numerele prime din șir. Dacă șirul nu conține astfel de numere va afișa mesajul "nu", pe linie
nouă.
#include <iostream>
using namespace std;
int main(){int n, x, s, prim, ok=0; cin>>n;
for (int i=1; i<=n;i++)
{cin>>x; prim=1;
for(int j=2; j<=x/2; j++)
if (x%j==0) prim=0;
if (prim) { while(x) {s+=x%10; x/=10; }
cout<<s<<" ";ok=1; }
}
if(ok==0) cout<<"\nnu "; }
SirElementeDacaPrimSumaCifrelor
11. Se citeşte un șir format din n elemente, unde n este număr natural citit de la tastatură. Scrieţi un
program în C/C++ care calculează suma cifrelor pentru fiecare element prim din șir.
#include <iostream>
using namespace std; int main(){int n, x, prim, s;
cout<<"n="; cin>>n;
for(int i=1; i<=n; i++){cin>>x; prim=1; s=0;
for(int j=2; j<=x/2; j++) if(x%j==0) prim=0;
if (prim) while(x) {s+=x%10; x/=10; } cout<<s<<" ";}}
SirElementeSumaCifrelorPrim
12. Se citeşte un număr natural n de la tastatură. Scrieţi un program în C/C++ care generează toate
numerele începând de la 11 până la n care au suma cifrelor număr prim.
celPuțin3CifrePenultimaNula
13. Se citește un șir din n numere întregi. Scrieţi un program în C/C++ care calculează și afișează suma
cifrelor pentru fiecare element din șir format din cel puțin trei cifre iar penultima cifră este nulă. Dacă șirul
nu conține astfel de elemente va afișa mesajul "nu", pe linie nouă.
#include <iostream>
using namespace std;
int main(){int n, x, s, ok=0;cin>>n;
for (int i=1; i<=n;i++)
{cin>>x; s=0;
if (x>99 && x/10%10==0) {while(x) {s+=x%10; x/=10; }
cout<<s<<" ";ok=1;}
}
if(ok==0) cout<<"\nnu "; }