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