0% au considerat acest document util (0 voturi)
160 vizualizări7 pagini

Plan Lectie II - Probleme

Documentul conține mai multe probleme de programare referitoare la manipularea numerelor. Problemele vizează determinarea numerelor cu cea mai mare cifră, a numerelor divizibile cu suma cifrelor lor, a diferenței dintre numere formate din cifre pare/impare, a celui mai mare număr palindrom.

Încărcat de

Lucian Vartolomei
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
160 vizualizări7 pagini

Plan Lectie II - Probleme

Documentul conține mai multe probleme de programare referitoare la manipularea numerelor. Problemele vizează determinarea numerelor cu cea mai mare cifră, a numerelor divizibile cu suma cifrelor lor, a diferenței dintre numere formate din cifre pare/impare, a celui mai mare număr palindrom.

Încărcat de

Lucian Vartolomei
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
Sunteți pe pagina 1/ 7

Probleme:

Medii:

#364:
Se dau n numere naturale. Determinati numarul pentru care prima cifra este
maxima.

#include <iostream>
using namespace std;

int main() {
int n, nr, nrMax = 0, cfrMax = 0;
cin >> n;

for (int i = 0; i < n; i++) {


cin >> nr;
int copyOfNr = nr;

while (nr / 10 != 0) {
nr = nr / 10; // ramane prima cifra
}

if (nr > cfrMax) {


cfrMax = nr;
nrMax = copyOfNr;
}

if (nr == cfrMax && copyOfNr > nrMax) {


nrMax = copyOfNr;
}
}

cout << nrMax;


}

#665
Se dau doua numere naturale a b. Determinati cate numere naturale din intervalul [a,
b] se divid cu toate cifrele lor nenule.
#include <iostream>
using namespace std;

int main() {
int a, b, c = 0;
cin >> a >> b;

for (int i = a; i <= b; i++) {


int numar = i;
int ok = 1;

while (numar != 0) {
if (numar % 10 != 0)
if (i % (numar % 10) != 0)
ok = 0;
numar = numar / 10;
}

if (ok == 1)
c++;
}

cout << c;
}

#464
Se citește o cifră k și apoi se citesc numere până la apariția lui 0. Să se
determine de câte ori apare cifra k în numerele citite care sunt pare.

#include <iostream>

using namespace std;

int main() {
int k, nr, c = 0;
cin >> k;
cin >> nr;

while (nr != 0) {
if (nr % 2 == 0) {
while ( nr != 0) {
if (nr % 10 == k)
c++;
nr = nr / 10;
}
}

cin >> nr;


}

cout << c;
}

Usoare:

#370
Se dau doua numere naturale k si n si apoi n numere naturale. Calculati suma celor
care au suma cifrelor divizibila cu k.

#include <iostream>

using namespace std;

int main() {
int k, n, numar, copieNr, sumaCf, s = 0;
cin >> k >> n;

for ( int i = 0; i < n; i++) {


cin >> numar;
copieNr = numar;
sumaCf = 0;

while (numar != 0) {
sumaCf += numar % 10;
numar /= 10;
}

if (sumaCf % k == 0)
s += copieNr;
}
cout << s;
}

#2662
Se dau n numere naturale. Se construieste o valoare selectand de la fiecare numar
cifra maxima. Determinati patratul acestei valori.

#include <iostream>

using namespace std;

int main() {
long long int n, numar, nrNou = 0;
cin >> n;

for(int i = 0; i < n; i++) {


cin >> numar;
int cfMaxima = 0;

while (numar != 0) {
if (numar % 10 >= cfMaxima)
cfMaxima = numar % 10;
numar /= 10;
}

nrNou = nrNou * 10 + cfMaxima;


}

cout << nrNou * nrNou;


}

#1613
Se citește un număr natural nenul n. Numărul n1 este format doar din cifrele
pare ale lui n. Numărul n2este format doar din cifrele impare ale lui n. Calculați
valoarea absolută a diferenței lor.

#include <iostream>
#include <cmath>
using namespace std;

int main() {
long n, n1 = 0, n2 = 0, d, inv1 = 0, inv2 = 0;
cin >> n;

while (n != 0) {
if (n % 2 == 0)
inv1 = inv1 * 10 + n % 10;

if (n % 2 == 1)
inv2 = inv2 * 10 + n % 10;

n = n / 10;
}

while (inv1 != 0) {
n1 = n1 * 10 + inv1 % 10;
inv1 = inv1 / 10;
}

while (inv2 != 0) {
n2 = n2 * 10 + inv2 % 10;
inv2 = inv2 / 10;
}

d = n1 - n2;
if (d < 0)
cout << (-1) * d;
else
cout << d;
}
#280
Se dau mai multe numere naturale. Determinaţi cel mai mare număr palindrom
aflat printre numerele date şi de câte ori apare.

#include <iostream>
#include <cmath>
using namespace std;

int main() {
int numar, P = 0, C = 0, invers, copieNr;
cin >> numar;

while (numar != 0) {
invers = 0;
copieNr = numar;

while (copieNr != 0) {
invers = invers * 10 + copieNr % 10;
copieNr = copieNr / 10;
}

if (invers == numar) {
if (numar == P)
C++;

if (numar > P) {
P = numar;
C = 1;
}
}

cin >> numar;


}

if (P == 0)
cout << "NU EXISTA";
else
cout << P << " " << C;
}

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