下面的代码要求用户输入一个数字,然后将每个数字相加以获得总和。例如,如果我输入123,它将执行(1 + 2 + 3),然后输出6.我有递归方法,它是: public static int sumDigits(long n)但是我不确定它什么时候被调用或者它是如何工作的,还有long n声明是什么意思?
//this is my code
import java.util.Scanner;
public class Practice {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a integer: ");
long n = input.nextLong();
// Display the sum of all the digits in the integer
System.out.println("The sum is: " + sumDigits(n));
}
//recrusve method that computes the sum of the digits in an integer
public static int sumDigits(long n) {
int sum = 0;
while (n > 0)
{
sum += n % 10;
n /= 10;
}
return sum;
}
}
答案 0 :(得分:0)
你正在寻找这样的东西:
private long sumDigits(long n)
{
if(n <= 0)
{
return 0;
}
return n + sumDigits(n - 1);
}
递归函数在一个操作中执行一个步骤,然后使用某种结束条件调用自己进行下一步。
在这种情况下,您希望将当前数字添加到其下方所有数字的总和,直到达到零。