在此示例中,您將學(xué)習(xí)使用遞歸函數(shù)查找自然數(shù)之和。
要理解此示例,您應(yīng)該了解以下C語言編程主題:
正數(shù)1、2、3 ...稱為自然數(shù)。下面的程序從用戶處獲取一個(gè)正整數(shù),然后計(jì)算得出給定數(shù)字的總和。
訪問此頁面可 使用循環(huán)查找自然數(shù)之和。
#include <stdio.h> int addNumbers(int n); int main() { int num; printf("輸入一個(gè)正整數(shù): "); 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; }
輸出結(jié)果
輸入一個(gè)正整數(shù): 20 Sum = 210
假設(shè)用戶輸入了20。
最初,從main()調(diào)用addNumbers(),并傳入20作為參數(shù)。
數(shù)字20被添加到addNumbers(19)的結(jié)果中。
在下一個(gè)從addNumbers()到addNumbers()的函數(shù)調(diào)用中,將傳遞19,該值將添加到addNumbers(18)的結(jié)果中。 此過程一直持續(xù)到n等于0。
當(dāng)n等于0時(shí),沒有遞歸調(diào)用。 這最終將整數(shù)和返回給main()函數(shù)。