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

前端之家收集整理的这篇文章主要介绍了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>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;
}

猜你在找的Java相关文章