Spaski
Vita - Amore - Riso
- Член од
- 31 јануари 2009
- Мислења
- 263
- Поени од реакции
- 11
Функцијава:А може еве да објасниш како работи таа твоја функција? Не ми е јасна. Btw кај мене не ги дава очекуваните резултати.
Код:
int nzs(int x, int y)
{
int i=2;
[INDENT] if(x==1)
[/INDENT] return y;
if(y==1)
return x;
while(x%i && y%i)
i++;
if(x%i)
x/=i;
if(y%i)
y/=i;
return i*nzs(x,y);
}
Код:
if(x==1)
return y;
if(y==1)
return x;
Потоа:
Код:
while(x%i && y%i)
i++;
кога ќе најде кој е делител барем еден од условите станува 0 и излегува од циклусот.
Овде проверува:
Код:
if(x%i)
x/=i;
if(y%i)
y/=i;
И на крај рекурзијата
Код:
return i*nzs(x,y);
Пример(броевите 12 и 15) НЗС(12,15)=60
12|2 15|3
6|2 5|5
3|3 1|
1|
2*2*3*5=60