Sunteți pe pagina 1din 4

SUMA PRIMELOR N NUMERE NATURALE UTILIZÂND CELE TREI

INTRUCȚIUNI REPETITVE:
 FOR

#include <iostream>

using namespace std;

int main()
{
int n,S=0,i;
cout<<"n=";cin>>n; //dupa citirea lui n stiu cate valori adun in suma
for(i=1;i<=n;i++)
{
S=S+i; //S=0+1=1; S=1+2=3; S=3+3=6; S=6+4=10...
cout<<"La acest moment suma S este:"<<S<<endl;
}
cout<<"Suma primelor n numere naturale este:"<<S<<endl;
return 0;
}
 WHILE
#include <iostream>

using namespace std;

int main()
{
int n,S=0,i=1;
cout<<"n=";cin>>n; //dupa citirea lui n stiu cate valori adun in suma
while(i<=n)
{
S=S+i;
cout<<"La acest moment suma S este:"<<S<<endl;
i=i+1; //i++;
}
cout<<"Suma primelor n numere naturale este:"<<S<<endl;
return 0;
}
 DO-WHILE
using namespace std;

int main()
{
int n,S=0,i=1;
cout<<"n=";cin>>n; //dupa citirea lui n stiu cate valori adun in suma
do
{
S=S+i;
cout<<"La acest moment suma S este:"<<S<<endl;
i=i+1; //i++;
}
while(i<=n);
cout<<"Suma primelor n numere naturale este:"<<S<<endl;
return 0;
}

Se citește un număr n de la tastatură. Se cere să se numere cifrele pare sau impare ale
acetuia.

#include <iostream>

using namespace std;

int main()
{
int nr_introd, nr_cifre_pare=0, nr_cifre_impare=0,ultima_cifra; //numarul introdus
va avea un numar de cifre pare si un numar de cifre impare
//Ex. nr_introd=12458 => nr_cifre_pare=3 si nr_cifre_impare=2
cout<<"nr_introd=";cin>>nr_introd;
while(nr_introd!=0) //testez cat timp numarul introdus este diferit de 0 => pot sa
verific paritatea cifrelor sale
{
cout<<"La acest moment numarul nostru este:"<<nr_introd<<endl;
ultima_cifra=nr_introd%10; //se determina ultima cifra a numarului introdus.
Ex. 12458%10 = 8
cout<<"Ultima cifra a numarului de verificat este:"<<ultima_cifra<<endl;
if(ultima_cifra%2==0) //testez (verific) daca ultima cifra a numarului introdus este
PARA
nr_cifre_pare=nr_cifre_pare+1; //numarul de cifre pare creste cu 1 => aceeasi
scriere este nr_cifre_pare++
else //se intelege ca ultima cifra nu este para DECI ESTE IMPARA
nr_cifre_impare=nr_cifre_impare+1;
nr_introd=nr_introd/10; //dupa ce se verifica paritatea ultimei cifre se renunta la
ultima cifra a numarului astfel incat numarulul introdus sa devina numarul initial
FARA ULTIMA CIFRA
//Ex. nr_introd=12458 => la aceasta etapa nr_introd devine 1245 PENTRU CA
12458/10=1245
}
cout<<"Numarul de cifre pare din numarul initial introdus
este:"<<nr_cifre_pare<<endl;
cout<<"Numarul de cifre impare din numarul initial introdus
este:"<<nr_cifre_impare<<endl;
return 0;
}
Se citesc n numere. Să se afișeze valoarea maximă și după aceasta să se afiseze de câte
ori apare această valoare.

#include <iostream>

using namespace std;

int main()
{
int n, numarul, max_nr=0, nr_aparitii_max=0;
cout<<"Introduceti numarul de numere pentru care caut maximul... n=";cin>>n;
//Ex. introduc n=6 => voi introduce 6 numere => 25, 30, 14, 30, 12, 11 => max_nr=30
si nr_aparitii=2
while(n!=0) //cat timp mai avem numere de citit si testat...
{
cout<<"Introduceti numarul curent... numarul=";cin>>numarul;
if(numarul>max_nr)
{
max_nr=numarul;
nr_aparitii_max=nr_aparitii_max +1;
}
n=n-1; //am introdus si verificat 1 numar => numarul de numere scade cu o unitate
=> mai am de verificat n-1 numere
}
cout<<"Valoarea maxima a numerelor introduse este:"<<max_nr<<endl;
cout<<"Numarul de aparitii pentru valoarea maxima
este:"<<nr_aparitii_max<<endl;
return 0;
}

Realizaţi un algoritm care să determine dacă un număr natural a este divizibil cu un


număr natural b utilizând doar operaţii de scădere. Ambele numere sunt introduse de la
tastatură şi sunt diferite de 0.

#include <iostream>

using namespace std;

int main()
{
int a,b; //declararea celor doua numere
cout<<"Pentru testarea divizibilitatii lui a cu b este necesar ca a sa fie mai mare decat
b ..."<<endl;
cout<<"a=";cin>>a;
cout<<"b=";cin>>b;
//Ex. a=25 si b=5 => a este divizibil cu b deoarece 25 se imparte exact la 5
// Nu folosim impartirea pentru ca in cerinta se specifica in mod clar DOAR PRIN
SCADERI SUCCESIVE
// In acest caz la din 25 (a-ul) se scade 5 (b-ul) pana cand a-ul devine mai mic decat b
//Daca a-ul devine 0 INSEAMNA CA b-ul a intrat de un numar exact de ori in a =>
DIVIZIBIL
//Daca a-ul devine ceva diferit de 0 INSEAMNA CA b-ul NU a intrat de un numar
exact de ori in a => NU ESTE DIVIZIBIL
if(a<=b)
cout<<"Pentru ca a este mai mic decat b => ca a NU ESTE DIVIZIBIL CU b
..."<<endl;
else
{
cout<<"Numarul a introdus este mai mare decat numarul b deci putem verifica
divizibilitatea fericirii..."<<endl;
while(a>=b)
{
a=a-b;
cout<<"Numarul a este acum ... a="<<a<<endl;
}
if(a!=0)
cout<<"Numarul natural a NU ESTE DIVIZIBIL CU b!!!"<<endl;
else
cout<<"Numarul natural a ESTE DIVIZIBIL CU b!!!"<<endl;
}
return 0;
}

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