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

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 alexdeveloper0
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