这是一个很基础的问题,不过在写的过程中,我发现,最开始的我是想用数组来存各位数字之和,并使用两个for循环完成问题(先使用一个for循环读入数字,再调用求各位数字之和的函数,将结果放进数组,再使用一个for循环输出数组)
可是上面的方案还有简化过程的余地——因为解决此问题,数组并不是必须的,而且从程序可读性的角度来看,数组也并没有提高多少可读性。
像下面这样写,却可以显得更加简单而纯粹。
import java.util.*;
public class pta7_1 {
//计算num的各位数字之和
private static int calSum(int num) {
int sum_num=num%10 ;
while(((num/=10)!=0)) {
sum_num+=num%10;
}
return sum_num;
}
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
//读入数字个数
int length=input.nextInt();
//读入单个数字,并将其各位数之和输出
for(int i=0;i<length;i++) {
System.out.print(calSum(input.nextInt())+" ");
}
}
}