Buna! In algoritmul de mai jos, acel if arr[digit] verifica daca, in sir este prezent valoarea digit????
// This function returns true if n is lucky
bool isLucky(int n)
{
// Create an array of size 10 and initialize all
// elements as false. This array is used to check
// if a digit is already seen or not.
bool arr[10];
for (int i=0; i<10; i++)
arr[i] = false;
// Traverse through all digits of given number
while (n > 0)
{
// Find the last digit
int digit = n%10;
// If digit is already seen, return false
if (arr[digit])
return false;
// Mark this digit as seen
arr[digit] = true;
// REmove the last digit from number
n = n/10;
}
return true;
}
Răspunsuri la întrebare
Răspuns de
0
Salut!
Algoritmul prezentat de tine face următoarele :
vectorul arr este un vector caracteristic ce are rolul de-a ţine evidenţa cifrelor unui numar dintr-un număr dacă se repetă.
Funcţionează ceva de genul : (exemplu)
n = 123
arr = {false,true,true,true,false,..,false}
arr[0] e false
arr[1] e true
arr[2] e true
arr[3] e true.
arr[4] e false pentru ca cifra 4 nu apare in numarul n.
In concluzie algoritmul are rolul de-a verifica daca doua cifre se repeta intr-un numar. Daca da, atunci returneaza false altfel returneaza true.
Referitor la intrebarea ta : Oarecum da, spui bine, arr[digit] verifica daca exista cifra x e in numarul n, doar ca el verifica daca exista de mai multe ori.
Succes!
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Engleza,
9 ani în urmă