Sunteți pe pagina 1din 6

1/6

Algoritmul elementar:Suma cifrelor prof.Mariana IVAN

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.

Exemplu: n=123; va afișa: s=1+2+3=6;

#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.

Exemplu: n=1346350; va afișa: s=3+6+3=12;

#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 ".

Exemplu:n=23769; va afișa:s=27; n=1234; va afișa:nu


#include <iostream>
using namespace std;
int main(){ int n, ok=0, s=0;
cout<<"\ndati numar:"; cin>>n;
int aux=n; //copie de variabila
while(aux)
{if(aux%10>6){ok=1;break;}
aux/=10;}
aux=n; //refolosire de variabila
if(ok==1){
while(aux){s+=aux%10; aux/=10; }
cout<<"\nSuma cifrelor: "<<s;}
else cout<<"\nnu "; }

Ș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

Exemplu: n=5; 11 173 1001 1240 700


Va afisa: 11 3 1001 4 3

#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.

Exemplu: n=5; 123 9001 70002 73 9000002


Va afisa: 3 4 9 2 11

#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.

Exemplu: n=5; 123 173 1423 102 9023


Va afisa: 6 3 10 3 14
4/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, 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ă.

Exemplu: n=5; 120 422 761 811 20;


va afișa: 422 811

#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".

Exemplu: n=5; 120 422 761 811 20;


va afișa: 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

{int aux=x, s=0;


while(aux){s+=aux%10; aux/=10;}
cout<<s<<" ";ok=1;}
}
if(ok==0) cout<<"\nnu "; }

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ă.

Exemplu: n=5; 111 40 81 72 5;


va afișa: 5

#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.

Exemplu: n=5; 17 11 567 324 43; va afișa: 8 2 0 0 7

#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.

Exemplu: n=30; va afișa: 11 12 14 16 20 21 23 25 29 30


#include <iostream>
using namespace std; int main(){int n, d, prim, s, aux; cin>>n;
for(int i=11;i<=n;i++){prim=1; aux=i; s=0; //parcurg numerele
while (aux) {s+=aux%10; aux/=10;}
for(d=2;d<=s/2;d++) if(s%d==0) prim=0; //parcurg divizorii
if(prim) cout<<i<<" ";}}
6/6
Algoritmul elementar:Suma cifrelor prof.Mariana IVAN

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ă.

Exemplu: n=5; 101 4002 81 720 5;


va afișa: 2 6

#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 "; }

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