Informatică, întrebare adresată de hfvvfjmrjx, 8 ani în urmă

1. Se citesc două numere naturale a şi b. Să se afişeze câte dintre acestea au exact două cifre. Ex: Dacă a=123 si b=34 se afişează 1.

2. Se citeşte un număr de exact 3 cifre. Să se afişeze cifra zecilor numărului citit. Ex: Dacă se citeşte 372 atunci se afişează 7.

3. Se citesc trei numere naturale distincte a, b şi c. Să se afişeze cea mai mare sumă care se poate forma cu exact două dintre numerele citite. Ex: Dacă a=23, b=8 şi c=34 se afişează 57.

4. Se citeşte un numar natural x. Să se afişeze "da" dacă numărul citit este par şi nu se divide cu 3. În caz contrar se afişează "nu". Ex: Dacă se citeşte numărul 22 atunci se afişează "da" iar dacă se citeşte 24 atunci se afişează "nu".

C++

Răspunsuri la întrebare

Răspuns de michei69
1

nu sunt cele mai simple raspunsuri din cauza ca c++-ul meu e cam rusty :l

la raspunsuri voi include doar continutul lui int main() pentru a salva spatiu (la fiecare raspuns se presupune includerea <iostream> si utilizarea namespaceului std)

Răspuns:

1.

int nr_doua_cifre = 0;

int a;

int b;

cin >> a;

cin >> b;

if (9 < a && a > 100) {

nr_doua_cifre += 1;

}

if (9 < b && b > 100) {

nr_doua_cifre += 1;

}

cout << nr_doua_cifre;

2.

int nr;

cin >> nr;

cout << (nr % 100) / 10;

3.

int a;

int b;

int c;

int suma = 0;

cin >> a;

cin >> b;

cin >> c;

if (suma < a + b) {

suma = a + b;

}

if (suma < a + c) {

suma = a + c;

}

if (suma < b + c) {

suma = b + c;

}

cout << suma

4.

int x;

cin >> x;

if (x % 2 == 0 && x % 3 != 0) {

cout << "da";

} else {

cout << "nu";

}

Explicație:

1.

daca 9 < a < 100 (numarul a este format din 2 cifre) se incrementeaza numarul numerelor de doua cifre

daca 9 < b < 100 (numarul b este format din 2 cifre) se incrementeaza numarul numerelor de doua cifre

se scrie numarul numerelor de doua cifre

2.

MOD (%) - restul unei impartiri

DIV (/) - câtul impartirii

pentru a afla numarul zecimalelor, am scapat de numarul sutelor pentru a avea doar zecimalele si unitatile, apoi am scapat de unitati prin impartirea la 10 si am ramas doar cu zecimalele

o reprezentare in pseudo cod ar veni:

(nr MOD 100) DIV 10

unde (daca nr este 372):

372 MOD 100 = 72

72 DIV 10 = 7

3. comparam fiecare suma si o scoatem pe cea mai mare

4. daca x MOD 2 este egal cu 0, inseamna ca x este un numar par (divizibil cu 2)

daca x MOD 3 nu este egal cu 0, inseamna ca x nu este divizibil cu 3

Sper ca te-am ajutat! :3

Alte întrebări interesante