C# Kortejlar C# kartejlarni e’lon qilish
C# tilida rekursiv funkciyalar
Download 260.19 Kb.
|
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);}
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:
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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling