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
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!
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Biologie,
9 ani în urmă
Biologie,
9 ani în urmă