Šajā piemērā jūs iemācīsities atrast dabisko skaitļu summu, izmantojot rekursīvu funkciju.
Lai saprastu šo piemēru, jums vajadzētu būt zināšanām par šādām C programmēšanas tēmām:
- C Lietotāja definētas funkcijas
- C Rekursija
Pozitīvie skaitļi 1, 2, 3… ir pazīstami kā dabiskie skaitļi. Zemāk redzamā programma ņem no lietotāja pozitīvu veselu skaitli un aprēķina summu līdz dotajam skaitlim.
Apmeklējiet šo lapu, lai atrastu dabisko skaitļu summu, izmantojot cilpu.
Dabisko skaitļu summa, izmantojot rekursiju
#include int addNumbers(int n); int main() ( int num; printf("Enter a positive integer: "); scanf("%d", &num); printf("Sum = %d", addNumbers(num)); return 0; ) int addNumbers(int n) ( if (n != 0) return n + addNumbers(n - 1); else return n; )
Rezultāts
Ievadiet pozitīvu veselu skaitli: 20 Sum = 210
Pieņemsim, ka lietotājs ievadīja 20.
Sākotnēji addNumbers()
tiek izsaukts no main()
20 ar argumentu.
Rezultātam tiek pievienots skaitlis 20 addNumbers(19)
.
Nākamajā funkcijas izsaukumā no addNumbers()
līdz addNumbers()
tiek nodots 19, kas tiek pievienots rezultātam addNumbers(18)
. Šis process turpinās, līdz n ir vienāds ar 0.
Ja n ir vienāds ar 0, rekursīvs zvans nav. Tādējādi funkcijai tiek atgriezta veselu skaitļu summa main()
.