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

problema 4227 pbinfo, cerinta:


Când adunăm două cifre c1 și c2, obținem transport dacă c1 + c2 ≥ 10. Când adunăm două numere naturale, se poate obține chiar de mai multe ori transport. De exemplu, dacă adunăm 538 și 726, atunci obținem de două ori transport, prima oară când adunăm cifrele unităților, 8 + 6, a doua oară când adunăm cifrele sutelor, 5 + 7.
Se dau două numere naturale n și m care au același număr de cifre. Să se afișeze mesajul NU dacă adunând cele două numere cifră cu cifră nu obținem niciodată transport, sau mesajul DA, dacă obținem măcar o dată transport.

Răspunsuri la întrebare

Răspuns de Sergetec
3

Salut!

Ai rezolvarea in C++ mai jos

#include <iostream>

using namespace std;

int main() {

  int a, b;

  bool ok = false;

  cin >> a >> b;

  while (a != 0 && b != 0 && !ok) { //daca a = 0 se opreste, daca b = 0 se opreste sau daca ok nu mai este false

      if (a % 10 + b % 10 >= 10) { //daca exista transport

          ok = true; //setam ok cu true

      }

      a /= 10;

      b /= 10;

  }

  if (ok) { //daca ok este true

      cout << "DA";

  }

  else {

      cout << "NU";

  }

  return 0;

}

Explicatie:

  • Asa cum zice si cerinta, este necesar sa existe cel putin 1 transport pentru a se afisa mesajul "DA".
  • if (a % 10 + b % 10 >= 10) se traduce astfel: daca suma dintre ultima cifra a lui a si ultima cifra a lui b este mai mare decat 10, atunci stim ca  exista "transport"
Alte întrebări interesante