递归数组求和
给定一个数组,求所有元素的和
算法思想:
传入数组和下标,如果下标越界就返回0,否则返回当前值和下一个值的和,递归操作。
Java实现:
public class Main {
public static int func(int[] array, int index) {
if (index > array.length - 1) {
return 0;
} else {
return array[index] + func(array, index + 1);
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] array = new int[10];
for (int i = 0; i < array.length; i++) {
array[i] = new Random().nextInt(100);
}
System.out.println(func(array, 0));
sc.close();
}
}
Python实现:
import random
def func(array, index):
if index > len(array) - 1:
return 0
else:
return array[index] + func(array, index + 1)
if __name__ == '__main__':
# 生成一个随机数列表
array = [random.randint(0, 100) for i in range(10)]
print(func(array, 0))
C++实现:
#include <iostream>
using namespace std;
int func(int *array, int index, int arraySize){
if (index > arraySize - 1) {
return 0;
} else {
return array[index] + func(array, index + 1, arraySize);
}
}
int main() {
// 定义数组
int array[10];
// 生成随机数
for(int i = 0; i < 10; i++){
array[i] = rand() % 200;
}
// 计算数组大小
int arraySize = sizeof(array) / sizeof(array[0]);
// 递归调用并输出
cout<<func(array, 0, arraySize)<<endl;
}
标签:index,return,数组,递归,求和,int,算法,func,array
From: https://blog.csdn.net/weixin_44144773/article/details/140205059