cin >>Xalqalar_soni;
Hanoy(Xalqalar_soni);
return 0;
}
Xalqalar soni 3 bo‘lganda (Xalqalar_Soni=3) dastur ekranga halqalarni ko‘chirish bo‘yicha
amallar ketma-ketligini chop etadi:
Xalqa A dan B ga o’tkazilsin
Xalqa A dan C ga o’tkazilsin
Xalqa B dan C ga o’tkazilsin
Xalqa A dan B ga o’tkazilsin
Xalqa C dan A ga o’tkazilsin
Xalqa C dan B ga o’tkazilsin
Xalqa A dan B ga o’tkazilsin
Rekursiya chiroyli, ixcham ko‘ringani bilan xotirani tejash va hisoblash vaqtini qisqartirish
nuqtai-nazaridan imkon qadar uni taticri hisoblash bilan almashtirilgani ma’qul. Masalan,
x
haqiqiy sonining n-darajasini hisoblashning quyidagi yechim varianti nisbatan kam resurs talab
qiladi (n- butun ishorasiz son):
double Butun_daraja(double x, int n)
{
double p=1;
for (int i=1; i<=n; i++) p*=x;
return p;
}
Lekin shunday masalalar borki, ularni yechishda rekursiya juda samarali, hattoki, yagona
usuldir. Xususan, grammatik tahlil masalalarida rekursiya juda ham o‘ng‘ay hisoblandi.
Do'stlaringiz bilan baham: