Šajā piemērā jūs iemācīsities atrast faktora skaitli, kas nav negatīvs vesels skaitlis, kuru ievadījis lietotājs, izmantojot rekursiju.
Lai saprastu šo piemēru, jums vajadzētu būt zināšanām par šādām C programmēšanas tēmām:
- C funkcijas
- C Lietotāja definētas funkcijas
- C Rekursija
Pozitīvā skaitļa n koeficientu izsaka:
factorial of n (n!) = 1 * 2 * 3 * 4 *… * n
Negatīvā skaitļa faktoriāls neeksistē. Un faktori 0
ir 1
.
Jūs iemācīsities atrast skaitļa faktorialu, izmantojot šajā piemērā rekursiju. Apmeklējiet šo lapu, lai uzzinātu, kā, izmantojot cilpu, var atrast skaitļa faktorialu.
Skaitļa faktori, izmantojot rekursiju
#include long int multiplyNumbers(int n); int main() ( int n; printf("Enter a positive integer: "); scanf("%d",&n); printf("Factorial of %d = %ld", n, multiplyNumbers(n)); return 0; ) long int multiplyNumbers(int n) ( if (n>=1) return n*multiplyNumbers(n-1); else return 1; )
Rezultāts
Ievadiet pozitīvu veselu skaitli: 6 koeficients 6 = 720
Pieņemsim, ka lietotājs ievadīja 6.
Sākotnēji multiplyNumbers()
tiek izsaukts no main()
ar argumentu 6.
Pēc tam multiplyNumbers()
no tās pašas funkcijas (rekursīvais zvans) tiek nodoti 5 . Katrā rekursīvajā izsaukumā argumenta n vērtība tiek samazināta par 1.
Ja n vērtība ir mazāka par 1, rekurzīvais izsaukums nenotiek, un faktoriāls galu galā tiek atgriezts main()
funkcijā.