加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 给定正数的所有数字之和

发布时间:2020-12-15 03:05:07 所属栏目:Java 来源:网络整理
导读:方法返回应该如果输入一个数字,假设345,那么输出应该是3 4 5 = 12 – 1 2 = 3.我在这里做错了什么? public class DigitSum { int Sum=0; public int compute( int MethParam ) { int rem = MethParam%10; Sum+=rem; MethParam = MethParam/10; if(MethParam
方法返回应该如果输入一个数字,假设345,那么输出应该是3 4 5 = 12 – > 1 2 = 3.我在这里做错了什么?
public class DigitSum
 {
    int  Sum=0;

    public int compute( int MethParam )
    {
        int rem = MethParam%10; 
        Sum+=rem;        

        MethParam = MethParam/10; 
        if(MethParam>10)
            compute(MethParam);

        return Sum+MethParam;  
    }

  public static void main(String[] args)
  {
    DigitSum ds  = new DigitSum();
    System.out.println(ds.compute(435));
  }
}

解决方法

O(1)Algo为数字之和:

取任何数字的模数9将返回该数字的数字之和,直到获得单个数字.

如果数字是9的倍数,则总和将为9

一个班轮:

public int sumDigit(int n){
    return (n%9 == 0 && n != 0) ? 9 : n%9;
}

替代实施:

public int sumDigit(int n){

      int sum = n % 9;
      if(sum == 0){
          if(n > 0)
               return 9;
      }
      return sum;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读