gpt4 book ai didi

java - 如何递归计算数字的平均值

转载 作者:行者123 更新时间:2023-12-03 21:36:13 24 4
gpt4 key购买 nike

我需要计算位数的平均值。

例如:n = 123,平均值=(1+2+3)/3=2

到目前为止,我已经设法正确计算了总和,但我在获取位数以计算平均值时遇到了问题。我会使用 2 种递归方法来计算总和和位数,但我只能使用 1 种递归方法。我也不允许使用任何全局变量

public static int avg(int n, int sum, int i) {
if(n==0)
return 0;
sum = n%10+avg(n/10, sum, i);
i++;
return sum/i;
}

最佳答案

不需要多重递归方法。您需要通过递归方法本身传递数字的总和和计数。因为您只能返回一个变量,所以让基本情况返回平均值是最简单的。

此外,将平均值计算为 double 以避免整数除法截断您的答案。

public static double avg(int n, int sum, int i) {
if(n==0)
return (double) sum / i;
return avg(n / 10, sum + n % 10, i + 1);
}

基本情况返回总和除以到目前为止累计的计数。否则,对于数字 n,传递 n/10 以去掉个位。对于 sum,将最后一位添加到总和中。对于 i,增加计数。

关于java - 如何递归计算数字的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50417195/

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