求用户输入的整型数字的各个位数之和

如果我们不是输入一个整型数字,数字如果是固定的,比如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中各个类型的最小知道最大值范围我博客里写有,有兴趣的可以去看看

猜你喜欢

转载自blog.csdn.net/lytwy123/article/details/80935660
今日推荐