嗨,我正在解决以下问题:
编写递归函数,计算数组负数的总和.从main方法传入数组{15,-7,-19,8,5,6,-1}.
递归函数应该返回结果-33.在main方法中打印出该值.该程序应命名为Negsum.java
这是我到目前为止,但打印出6.0,而不是-33.
public class Negsum {
static double findSum(double array[], int n){
double sum=0;
if(array[n]>0)
return 1;
else
return array[n-1] + findSum(array, n-1);
}
public static void main(String args[]){
double array[]={15, -7, -19, 8, 5, -6, -1};
System.out.println(findSum(array, 5));
}
}
Run Code Online (Sandbox Code Playgroud)
你的代码有几个问题.我怀疑你根本不明白你想做什么.这不能解决 - 你需要花更多的时间学习,直到你真正得到它.
但是我注意到的一些事情可能会指向正确的方向:
n争论的目的是什么?它应该以某种方式与数组的长度相关吗?也许您可以使用方法重载将其传递给递归函数,但不能传递给递归入口点?
为什么return 1;你的代码中有?1应该代表什么?
您已声明了一个变量sum,但它从未使用过.你打算在哪里使用这个sum变量?
也许通过思考这些问题,您将能够找到一个有效的解决方案.