Cum să scrieți un program în C++ care afișează toate numerele de 2 cifre care, adunate cu răsturnatul lor, dau 55

Introducere și concepte de bază

În această secțiune, vom explora problema principală: găsirea tuturor numerelor de două cifre care, atunci când sunt adunate cu inversul lor, dau suma de 55. Pentru a înțelege această problemă, este esențial să clarificăm ce reprezintă un număr de două cifre și cum putem obține răsturnatul acestuia. Un număr de două cifre este orice număr cuprins între 10 și 99. De exemplu, răsturnatul numărului 23 este 32.

Una dintre tehnicile fundamentale pentru a aborda această problemă este utilizarea unei bucle. O buclă ne permite să iterăm prin toate numerele de două cifre, de la 10 la 99, și să verificăm fiecare număr în parte. Vom folosi o buclă for pentru a parcurge toate aceste valori și vom aplica o serie de verificări pentru a determina dacă suma unui număr și a răsturnatului său este egală cu 55.

Pentru a obține răsturnatul unui număr de două cifre, vom folosi operatorii aritmetici. De exemplu, pentru numărul 23, cifra zecilor este 2, iar cifra unităților este 3. Răsturnatul acestuia se obține prin schimbarea poziției cifrelor, rezultând în 32. Acest proces poate fi realizat prin împărțirea numărului la 10 pentru a obține cifra zecilor și folosirea restului împărțirii pentru a obține cifra unităților. Astfel, răsturnatul numărului se poate calcula prin (număr % 10) * 10 + (număr / 10).

În cele din urmă, pentru a verifica dacă suma dintre un număr și răsturnatul său este 55, vom folosi o simplă adunare. Dacă rezultatul adunării este egal cu 55, atunci numărul respectiv îndeplinește condiția problemei noastre. Aceasta este strategia de bază pe care o vom implementa în codul nostru C++ pentru a găsi toate numerele de două cifre care, adunate cu răsturnatul lor, dau 55.

Implementarea programului în C++

În această secțiune, vom detalia pașii specifici pentru a implementa un program C++ care afișează toate numerele de două cifre care, adunate cu răsturnatul lor, dau 55. Vom începe prin a configura mediul de dezvoltare și a crea un nou proiect.

Primul pas este să deschidem IDE-ul nostru preferat, de exemplu, Visual Studio sau Code::Blocks. Creăm un nou proiect și selectăm un template de tip „Console Application”. Asigurându-ne că avem toate bibliotecile necesare instalate, putem trece la scrierea codului.

În funcția principală, `main()`, vom utiliza o buclă `for` pentru a itera prin toate numerele de la 10 la 99. Această buclă ne permite să analizăm fiecare număr individual:

for (int num = 10; num < 100; num++) {    int reversedNum = (num % 10) * 10 + (num / 10);    if (num + reversedNum == 55) {        std::cout << num << std::endl;    }}

În acest cod, `num` reprezintă numărul curent din intervalul 10-99. Calculăm răsturnatul acestui număr folosind operații aritmetice de bază: `num % 10` extrage cifra unităților, iar `num / 10` extrage cifra zecilor. Prin înmulțirea rezultatului `num % 10` cu 10 și adăugarea lui `num / 10`, obținem răsturnatul numărului inițial.

Apoi, verificăm dacă suma dintre numărul inițial și răsturnatul său este 55. Dacă condiția este îndeplinită, numărul este afișat pe ecran.

Un posibil punct de îmbunătățire ar fi să encapsulăm logica de calcul a răsturnatului și verificarea condiției într-o funcție separată pentru a îmbunătăți claritatea și reutilizarea codului. Iată un exemplu de cum ar putea arăta această funcție:

bool isSum55(int num) {    int reversedNum = (num % 10) * 10 + (num / 10);    return (num + reversedNum == 55);}

În funcția `main()`, putem apoi simplifica codul folosind această funcție:

for (int num = 10; num < 100; num++) {    if (isSum55(num)) {        std::cout << num << std::endl;    }}

Prin urmare, am implementat un program eficient și clar, care respectă cerințele inițiale și poate fi ușor extins sau modificat ulterior.

 

using namespace std;

// Functie care intoarce rasturnatul unui numar de doua cifre
int rasturnat(int numar) {
int zeci = numar / 10;
int unitati = numar % 10;
return unitati * 10 + zeci;
}

int main() {
cout << "Numerele de 2 cifre care adunate cu rasturnatul lor dau 55 sunt:" << endl;

// Iteram prin toate numerele de 2 cifre
for (int numar = 10; numar <= 99; ++numar) {
    int numar_rasturnat = rasturnat(numar);
    if (numar + numar_rasturnat == 55) {
        cout << numar << " + " << numar_rasturnat << " = 55" << endl;
    }
}

return 0;
}

Explicație:

  1. Funcția rasturnat:
    • Primește un număr de două cifre ca parametru.
    • Extrage cifra zecilor și a unităților.
    • Răstoarnă numărul (de exemplu, pentru 23 va returna 32).
  2. Funcția main:
    • Iterează prin toate numerele de două cifre, de la 10 la 99.
    • Pentru fiecare număr, calculează răsturnatul folosind funcția rasturnat.
    • Verifică dacă suma numărului și a răsturnatului său este 55.
    • Dacă condiția este îndeplinită, afișează numărul și răsturnatul său.

Acest program va afișa toate perechile de numere de două cifre care, adunate cu răsturnatul lor, dau 55.