C programma, lai atrastu skaitļa faktori, izmantojot rekursiju

Š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 0ir 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ā.

Interesanti raksti...