递归,计算正整数的总和

时间:2014-04-03 20:50:23

标签: java recursion

所以,我的全部意思是打印出正数的总和,并且我已经添加并打印得很好,唯一的问题是它还添加了负数。

关于为什么会这样的任何想法? 我只是希望它添加正数。

public static double computeSumPositive(double[]numbers, int count) 
{
double total=0;
{
if(count>0) 
        {
            total = numbers[count-1] + computeSumPositive(numbers, count -1); 
            return total;
        }
        else 
            return total;
        } 
}

3 个答案:

答案 0 :(得分:1)

您需要检查要添加的值。类似的东西:

    public static double computeSumPositive( double[] numbers, int count )
    {
        double total = 0;
        {
            if( count > 0 )
            {
                double val = (numbers[count - 1] > 0)?numbers[count - 1]:0;
                total = val + computeSumPositive( numbers, count - 1 );
                return total;
            }
            else
                return total;
        }
    }

答案 1 :(得分:0)

因为你没有检查有问题的数字是否为负,所以如果我理解你想要忽略numbers数组中的所有负数,就像这样:

public static double computeSumPositive(double[] numbers, int count) {
    double total = 0;
    if (count > 0) {
        if (numbers[count - 1] < 0) {
            total = numbers[count - 1] + computeSumPositive(numbers, count - 1);
        } else {
            total = computeSumPositive(numbers, count - 1);
        }
    }
    return total;
}

每次代码循环时,你也不需要在if jus内部返回值。

答案 2 :(得分:0)

urlpatterns = [
    path('', views.index, name='index'),
    path('search/<str:searchcode>', views.index, name='index_search'),
    path('search/detail/<str:place_id>', views.searchdetail, name='detail_search'),
    path('result/<str:searchcode>', views.index, name='index_result'),
]