C-ohjelma luonnollisten lukujen summan löytämiseksi rekursiota käyttämällä

Tässä esimerkissä opit löytämään luonnollisten lukujen summan rekursiivisen funktion avulla.

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

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

Positiiviset luvut 1, 2, 3… tunnetaan luonnollisina numeroina. Alla oleva ohjelma ottaa käyttäjältä positiivisen kokonaisluvun ja laskee summan annettuun lukuun.

Tältä sivulta löydät luonnollisten lukujen summan silmukan avulla.

Rekursiota käyttävien luonnollisten lukujen summa

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

Tuotos

Syötä positiivinen kokonaisluku: 20 Summa = 210 

Oletetaan, että käyttäjä syöttää 20.

Aluksi addNumbers()kutsutaan main()20: stä argumenttina.

Numero 20 lisätään tulokseen addNumbers(19).

Seuraavassa funktiokutsussa kohteesta addNumbers()siirretään addNumbers()19, joka lisätään tulokseen addNumbers(18). Tätä prosessia jatketaan, kunnes n on yhtä suuri kuin 0.

Kun n on 0, ei rekursiivista puhelua ole. Tämä palauttaa kokonaislukujen summan lopulta main()funktioon.

Mielenkiintoisia artikkeleita...