java - 递归求包括负数在内的数字之和

标签 java recursion

我正在使用 Java 中的递归(对我来说是一个新概念)来解决一些挑战。我目前正在研究一种递归方法,该方法给出给定长参数(n)的数字总和。预期输出:

  • 257 = 14
  • -257 = -14

我尝试编辑基本情况以仅包含 1 到 10 之间的数字,然后递减 sumOfDigits() 的总和,但显然您不能使用 if递归方法中的 >、else ifelse 语句。我被困住了!有人可以引导我找到解决方案吗?这是我的方法:

    public static long sumOfDigits(long n){

    long sum = n %10;
    if ( n < 10){
        return sum;
    } else {
        return sum += sumOfDigits(n%10);
    }
}

最佳答案

对于任何想知道的人,我自己设法解决了这个问题! 解决办法:

public static long sumOfDigits(long n){

    long sum = n %10;

    if (n == 0) return 0;

    if ( n >= 1 && n < 10){
        return sum;
    } else if (n < 0){
        return sum - sumOfDigits(-n %10);
    } else {
        return sum + sumOfDigits(n%10);
    }
}

关于java - 递归求包括负数在内的数字之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55073001/

相关文章:

Java 逆模 2**64

java - 运行集成测试时,Maven 不会初始化 spring 上下文属性

r - 如何定义一系列递归函数?

Haskell - 最常见的值

algorithm - T(0) = 1, T(1) = 0, T(n ) = 2* T(n-2) 的递归关系

java - 使用递归从列表中获取所有组合,包括使用相同数字的组合

java - 区分插入和更新

java - 如何在没有数据对象模型的情况下比较android中的firebase内部子项?

java - 自定义 Volley 请求上的 NullPointerException

java - 如何遍历包含相同类型列表的 List<Type>