【发布时间】:2015-01-15 10:08:39
【问题描述】:
我正在尝试使用 recursion 查找数组中整数元素的平均值。我知道如何使用循环来做到这一点,但我必须通过递归来完成我的赋值,所以我试图做的是使用递归找到元素的总和,然后将总和除以数组的长度。我写了这段代码,但它给了我一个错误的结果:
public int findAvg(int a[], int n)
{
int sum,avg;
if(n==1)
{
sum=a[0];
return sum;
}
else
{
sum=a[n-1]+findAvg(a,n-1);
}
avg = sum/n;
return avg;}
主类findAvg方法的调用:
public class main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Recursive r = new Recursive ();
int integersArr [] = {1,2,3,4,5};
int max = r.findMax(integersArr,integersArr.length );
int avg = r.findAvg(integersArr, integersArr.length);
System.out.println("Maximum element = "+ max);
System.out.println("Average value of elements = "+ avg);
}
}
控制台输出:
元素的平均值 = 1
【问题讨论】: