Informatică, întrebare adresată de fusromydah, 9 ani în urmă

Imi poate cineva explica acest algoritm? E pentru permutarea circulara spre stanga a cifrelor unui numar. Adica daca n=1372, programul va afisa 3721.
int Perm(int n )
{
int i , p = 1;
int x = n;
while ( x > 9 )
{
x = x/10;
p = p * 10;
}
n = n%p*10 + x;
return n;
}

Nu inteleg cum functioneaza n = n%p*10 + x; Daca luam dupa exemplul dat, ar veni 1372%10000 + 1 adica 1? si dupa??

Răspunsuri la întrebare

Răspuns de root
1
Daca luam exemplul de mai sus avem n=1372 urmarind algoritmul vom avea:
1) dupa rularea ciclului while x va avea valoarea 1 iar p valoarea 1000 pentru ca se executa cat timp x>9,adica pana ajunge sa aiba o singura cifra.

2) n= n % p * 10 + x => n = 1372 % 1000 * 10 + 1 => n = 372 * 10 + 1 =>
n = 3720 + 1 = 3721

Sper ca ai inteles :D
Alte întrebări interesante