在刚看到这个题目的时候,不由分说的就想采用数组的形式(前面刷题基本上都用了数组),写完了之后编译一直报错,数组溢出,改了很久都不对,后才想到可以把每一位分离出来,就类似于之前那种水仙花数计算方法等,把每一位分离出来。
核心算法:
while(n!=0){
sum=sum+n%10; //取余得到每一位的数字,相加
n=n/10; //去掉最后位数
}
解题代码:
import java.util.Scanner;
public class Main {
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int sum=0;
while(n!=0) {
sum=sum+n%10;
n=n/10;
}
System.out.println(sum);
}
}
明明很简单的算法,却误入歧途,证明还是不熟,还需多做多练!!!