求用户输入的整型数字的各个位数之和
如果我们不是输入一个整型数字,数字如果是固定的,比如54321,这样一个五位数,我们最先想到的是将它每一位数字求出来相加即可,个位为54321%10,十位54321/10%10,百位54321/100%10,千位54321/1000%10,最高位54321/10000,我们从这里可以看出这是知道这个数字有多少位数,如果不知道呢,我们可以先从个位开始找比如我输入的数字n,那么个位是不是n%10,十位n/10%10,百位我们是不是可以这样写:n/10/10%10,发现没有,我们可以将除的数以一个循环来实现比如百位/100可以换成/10/10,千位/1000,我们可以换成/10/10//10来看最后在%10就可以得到想要的数字之和了。
源代码:
import java.util.*;
public class GeWeiHeDemo {
public static void main(String []args) {
Scanner input = new Scanner(System.in);
int digital = input.nextInt(); //输入的数字,准备拆分
int sum = 0; //记录数字之和
while(digital!=0) {
sum+=digital%10;
digital/=10;
}
System.out.println("各位数字之和为:"+sum);
}
}
运行结果:
为什么我们输入9876543210就会出错呢,因为我们输入的数超过了int类型最大值了,当然会报错,有关java中各个类型的最小知道最大值范围我博客里写有,有兴趣的可以去看看