使用遞歸實現(xiàn)數(shù)組求和示例分享
思路如下:
給定一個含有n個元素的整型數(shù)組a,求a中所有元素的和。問題的難點在于如何使用遞歸上。如果使用遞歸,則需要考慮如何進(jìn)行遞歸執(zhí)行的開始以及終止條件,首先如果數(shù)組元素個數(shù)為0,那么和為0。同時,如果數(shù)組元素個數(shù)為n,那么先求出前n-1個元素之和,再加上a[n-1]即可。此時可以完成遞歸功能??傊?,遞歸就是在某個函數(shù)的執(zhí)行過程中首先判斷它的終止條件參數(shù),終止條件參數(shù)滿足終止條件則執(zhí)行完畢,終止條件參數(shù)不滿足終止條件則調(diào)用它自身執(zhí)行某項運算,比如這里求和就是執(zhí)行加法。凡是遞歸一定都有一個參數(shù)作為終止條件,比如這里是數(shù)組中未加入求和隊列的元素個數(shù),初始為數(shù)組長度。因為終止條件參數(shù)的初始值為數(shù)組長度,所以從數(shù)組的最后一個元素作為求和隊列的第一個元素開始,每遞歸一次就將數(shù)組中的一個元素劃歸到求和隊列中,同時將終止條件參數(shù)減1,直到其未為0,標(biāo)明所有元素都已加入求和隊列,返回求和隊列的值即可??梢娺f歸至少有兩個參數(shù),終止條件參數(shù)以及遞歸對象。
代碼如下:
// 1311.cpp : 定義控制臺應(yīng)用程序的入口點。
#include "stdafx.h"
#include<stdio.h>
int GetSum(int *a,int n)
{
return n == 0 ? 0 : GetSum(a,n - 1) + a[n-1];
}
int main()
{
int a[] = { 3, 6, 8, 2, 1 };
int length = sizeof(a) / sizeof(a[0]);
printf("%d\n", GetSum(a, length));
getchar();
return 0;
}
相關(guān)文章
C#開發(fā)WinForm清空DataGridView控件綁定的數(shù)據(jù)
本文詳細(xì)講解了C#開發(fā)WinForm清空DataGridView控件綁定數(shù)據(jù)的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03C#/VB.NET?將Word與Excel文檔轉(zhuǎn)化為Text
這篇文章主要介紹了C#/VB.NET?將Word與Excel文檔轉(zhuǎn)化為Text,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-08-08C#控件Picturebox實現(xiàn)鼠標(biāo)拖拽功能
這篇文章主要為大家詳細(xì)介紹了C#控件Picturebox實現(xiàn)鼠標(biāo)拖拽功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09