C Ohjelma löytää lukuarvo rekursiota käyttämällä

Tässä esimerkissä opit löytämään ei-negatiivisen kokonaisluvun kerroin, jonka käyttäjä on syöttänyt rekursiolla.

Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista C-ohjelmointiaiheista:

  • C Toiminnot
  • C Käyttäjän määrittelemät toiminnot
  • C Rekursio

Positiivisen luvun n kerroin saadaan:

factorial of n (n!) = 1 * 2 * 3 * 4 *… * n 

Negatiivisen luvun kerrointa ei ole olemassa. Ja faktori 0on 1.

Opit etsimään luvun faktoria rekursiolla tässä esimerkissä. Käy tällä sivulla saadaksesi selville, kuinka voit löytää luvun faktorin silmukan avulla.

Rekursiota käyttävän luvun kerroin

#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; ) 

Tuotos

Syötä positiivinen kokonaisluku: 6 Kerroin 6 = 720 

Oletetaan, että käyttäjä on syöttänyt 6.

Aluksi multiplyNumbers()kutsutaan siitä main(), kun argumentti on 6.

Sitten 5 siirretään multiplyNumbers()samasta toiminnosta (rekursiivinen puhelu). Kussakin rekursiivisessa puhelussa argumentin n arvo pienenee yhdellä.

Kun n: n arvo on alle 1, rekursiivista kutsua ei ole ja kerroin palautetaan lopulta main()funktioon.

Mielenkiintoisia artikkeleita...