A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

编写一个方法,计算一个整数各位数字之和
public static int sumDigits(long n)
例如:sumDigits(234)返回9(2+3+4)
提示:使用求余运算符 % 提取数字,用除号 / 去掉提取出来的数字。例如使用234 % 10 抽取4 ,然后使用234 / 10 去掉4 ,
      使用一个循环来反复提取和去掉每位数字,直到所有的位数都提取完为止
编写程序提示用户输入一个整数,然后显示这个整数所有数字之和。

5 个回复

倒序浏览
把数自变成字符串再变成字符数组,再把数组元素转成数字,相加就可以了
回复 使用道具 举报
木森森 发表于 2015-3-11 19:55
把数自变成字符串再变成字符数组,再把数组元素转成数字,相加就可以了

不明白,能把代码写出来吗,输入的整数有可能是两位,三位,四位
回复 使用道具 举报
你想法很正确,初学的就用除和取模来计算一个整型数据的各个位上的和。。
回复 使用道具 举报
class Demo{
        public static void main(String[] args){
                long result = sumDigits(2345L);
                System.out.println(result);       
        }

        public static long sumDigits(long n){
                if(n<10L){
                                return n;
                }else{
                                long next = n / 10;
                                long last = n % 10;
                                return last + sumDigits(next);
                }       
        }       
}
回复 使用道具 举报
执梦而行 发表于 2015-3-11 21:23
不明白,能把代码写出来吗,输入的整数有可能是两位,三位,四位
  1. class Test13
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 long l=13854387000l;
  6.                 //用于保存结果
  7.                 int sum=0;
  8.                 //变成字符串
  9.                 String s=new String(l+"");
  10.                 //变成字符数组
  11.                 char[]arr=s.toCharArray();
  12.                 //遍历数组,
  13.                 for(int i=0;i<arr.length;i++)
  14.                         sum=sum+Integer.parseInt(arr[i]+"");
  15.                 System.out.println(sum);
  16.         }
  17. }
复制代码
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马