目录
*18.11 (使用递归求一个整数各位数之和)
编写一个递归方法,使用下面的方法头计算一个整数中各位数之和:
public static int sumDigits(long n)
例如,sumDigits(234)返回的是 2+3+4=9。编写一个测试程序,提示用户输入一个整数, 然后显示各位数字之和。
-
习题思路
-
定义一个私有int变量,用于保存各位数字之和
-
sumDigits方法
-
如果n<10,则将sum加上n并返回。
-
如果>10,则用%10提取出最后一个数字,sum加上最后一个数字和sum(n/=10)后返回。
-
-
代码示例
编程练习题18_11SumOfIntegerDigits.java
package chapter_18;
import java.util.Scanner;
public class 编程练习题18_11SumOfIntegerDigits {
private static int sum = 0;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a integer:");
long n = input.nextLong();
System.out.println(sumDigits(n));
input.close();
}
public static int sumDigits(long n) {
if(n < 10) {
sum += n;
return sum;
}else {
int d = (int)n % 10;
sum += sumDigits(n/=10)+d;
return sum;
}
}
}
-
输出结果
Enter a integer:234
9