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

Cerința
Se dau numerele naturale n și k, unde k este o cifră. Să se verifice dacă toate cifrele lui n sunt mai mici sau egale decât k.

Date de intrare
Programul citește de la tastatură numerele n și k.

Date de ieșire
Programul va afișa pe ecran mesajul DA dacă toate cifrele lui n sunt mai mici sau egale decât k, sau mesajul NU dacă există măcar o cifră a lui n strict mai mare decât k.

Restricții și precizări
0 ≤ n ≤ 2.000.000.000
0 ≤ k ≤ 9
Exemplul 1:
Intrare

36125 7
Ieșire

DA
Exemplul 2:
Intrare

819 5
Ieșire

NU

Salut! Va rog mult sa ma ajutati la aceasta problema. Este problema #3620 de pe pbinfo. As dorii si explicatii la cod!

Răspunsuri la întrebare

Răspuns de andreidamian604
1

Răspuns:

#include <iostream>

using namespace std;

int main()

{

int n, k, ok = 0, c;

cin >> n >> k;

while ( n > 0 )

{

c = n % 10;

if ( c > k ) ok++;

n = n / 10;

}

if ( ok == 0 ) cout << "DA";

else cout<<"NU";

return 0;

}

Explicație:

este suficient sa arătăm că o cifră a lui n este mai mare decât k

algoritmul din while e clasic. afla cifrele unul număr

n mod 10 afli cifra apoi o prelucrezi și apoi o tai din număr

se poate îmbunătăți

daca cifra e mai mare afișezi nu și scrii return 0 din prima

și la final afișezi da

la return 0 programul se termină indiferent de ceea ce mai urmează


ciprian74: Multumesc!
andreidamian604: daca mai ai nelămuriri spune că n-am scris tot ce am explicat
ciprian74: OK
Alte întrebări interesante