gpt4 book ai didi

java - 递归函数返回数字中数字的平均值

转载 作者:行者123 更新时间:2023-12-02 10:43:45 25 4
gpt4 key购买 nike

我正在尝试创建一个递归函数,返回数字中数字的平均值。例如数字 123 的平均值是 2。我知道如何编写一个对数字求和的函数。

public static int sum (int n) {
if (n<10)
return n;
return n%10 + sum(n/10);
}

我也知道如何数数字

public static int numCount(int n) {
if (n<10)
return 1;
return 1 + numCount(n/10);
}

但是,我无法弄清楚如何在不使用现有函数的情况下计算平均值。

最佳答案

您可以递归地迭代该数组,同时保留累积 sum 和显示已迭代的项目的索引:

public class MyClass {
public static void main(String args[]) {
int[] arr = {1,2,3};
System.out.println(avg(arr)); // 2.0
}

private static double avg(int[] arr) {
return avg(arr, 0, 0);
}

private static double avg(int[] arr, int index, int sum) {
if (index == arr.length) {
return (double) sum / index;
}
return avg(arr, index + 1, sum + arr[index]);
}
}

Demo

关于java - 递归函数返回数字中数字的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52744858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com