黑马程序员技术交流社区

标题: 编写一个方法,计算一个整数各位数字之和 [打印本页]

作者: 执梦而行    时间: 2015-3-11 19:49
标题: 编写一个方法,计算一个整数各位数字之和
编写一个方法,计算一个整数各位数字之和
public static int sumDigits(long n)
例如:sumDigits(234)返回9(2+3+4)
提示:使用求余运算符 % 提取数字,用除号 / 去掉提取出来的数字。例如使用234 % 10 抽取4 ,然后使用234 / 10 去掉4 ,
      使用一个循环来反复提取和去掉每位数字,直到所有的位数都提取完为止
编写程序提示用户输入一个整数,然后显示这个整数所有数字之和。
作者: 木森森    时间: 2015-3-11 19:55
把数自变成字符串再变成字符数组,再把数组元素转成数字,相加就可以了
作者: 执梦而行    时间: 2015-3-11 21:23
木森森 发表于 2015-3-11 19:55
把数自变成字符串再变成字符数组,再把数组元素转成数字,相加就可以了

不明白,能把代码写出来吗,输入的整数有可能是两位,三位,四位
作者: mark.tian    时间: 2015-3-11 21:30
你想法很正确,初学的就用除和取模来计算一个整型数据的各个位上的和。。
作者: milimili    时间: 2015-3-11 21:56
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 22:05
执梦而行 发表于 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. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2