C# Kortejlar C# kartejlarni e’lon qilish


C# tilida rekursiv funkciyalar


Download 260.19 Kb.
bet22/28
Sana18.06.2023
Hajmi260.19 Kb.
#1574109
1   ...   18   19   20   21   22   23   24   25   ...   28
Bog'liq
dasturlash tyorya 8 shrift

33. C# tilida rekursiv funkciyalar
Masalan, n formulasidan foydalaniladigan faktorial hisobni olaylik! = 1 * 2 * ... * n . Ya'ni, aslida, sonning faktorialini topish uchun barcha sonlarni shu songacha ko'paytiramiz. Masalan, 4 24 = 1 * 2 * 3 * 4ning faktoriali , 5 ning faktoriali esa 120 = 1 * 2 * 3 * 4 * 5.
Faktorialni topish usulini belgilaymiz:int Factorial(int n)
{ if (n == 1) return 1; return n * Factorial(n - 1);}

Rekursiv funktsiyani yaratishda u, albatta , funktsiyani hisoblash boshlanadigan ba'zi bir asosiy versiyani o'z ichiga olishi kerak. Faktorial bo'lsa, bu 1 raqamining faktorialidir, ya'ni 1. Boshqa barcha ijobiy sonlarning faktoriallari 1 bo'lgan 1 raqamining faktorialini hisoblashdan boshlanadi.Dasturlash tili darajasida return iborasi asosiy holatni qaytarish uchun ishlatiladi :if (n == 1) return 1;

Ya'ni, agar kirish raqami 1 bo'lsa, u holda 1 qaytariladi.
Rekursiv funktsiyalarning yana bir xususiyati shundaki, barcha rekursiv qo'ng'iroqlar oxir-oqibat asosiy holatga yaqinlashadigan pastki funktsiyalarga murojaat qilishi kerak:

return n * Factorial(n - 1);

Demak, funksiyaga 1 ga teng bo‘lmagan sonni quyi funksiyalarga keyingi rekursiv chaqiruvlar bilan o‘tkazishda har safar ularga bittadan kichik raqam uzatiladi. Va oxirida biz raqam 1 ga teng bo'ladigan holatga erishamiz va asosiy holat ishlatiladi. Bu rekursiv tushish deb ataladi.
Rekursiv funktsiyaning yana bir keng tarqalgan misoli Fibonachchi raqamlarini hisoblaydigan funktsiyadir. Fibonachchi ketma-ketligining n-chi a’zosi f(n)=f(n-1) + f(n-2), f(0)=0 va f(1)=1 formula bilan aniqlanadi. Ya'ni, Fibonachchi ketma-ketligi shunday ko'rinadi: 0 (0-chi davr), 1 (1-chi davr), 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, .... ushbu ketma-ketlikning raqamlarini aniqlaymiz, biz quyidagi usulni aniqlaymiz



Download 260.19 Kb.

Do'stlaringiz bilan baham:
1   ...   18   19   20   21   22   23   24   25   ...   28




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling