Mam problem z tym kodem(nie należy do mnie http://www.rafalnowak.pl/wiki/index.php?title=R%C3%B3wnowa%C5%BCno%C5%9B%C4%87_cykliczna_dw%C3%B3ch_s%C5%82%C3%B3w)
no bo dla np.:
u = 123
v = 321
Czy z tym kodem jest wszystko ok?
Funkcja się nie kończy bo k będzie zawsze równe 1?
u jest przesuwane czy v ?
Straszny mam w końcu mętlik, proszę o pomoc.
bool equiv_cyc(const string &u, const string &v)
{
int n = u.length(), i = -1, j = -1, k;
if (n != v.length()) return false;
while( i<n-1 && j<n-1 )
{
k = 1;
while(k<=n && u[(i+k)%n]==v[(j+k)%n]) k++;
if (k>n) return true;
if (u[(i+k)%n] > v[(j+k)%n]) i += k; else j += k;
}
return false;
}