魔术数字 - 最简单的追求

时间:2015-10-25 06:33:00

标签: java

有没有更好的逻辑可以应用于幻数? 还是有一个我错过的神奇数字? 请帮我解决这个最简单的工作代码!

  

幻数是一个数字,其总和最终会导致1。

     

示例#1:19; 1 + 9 = 10; 1 + 0 = 1.因此是一个幻数。

     

示例#2:226; 2 + 2 + 6 = 10; 1 + 0 = 1。因此是一个神奇的数字。

     

示例#3:874; 8 + 7 + 4 = 19; 1 + 9 = 10; 1 + 0 = 1。因此是一个神奇的数字。

     class MagicN 
     {
         boolean isMagic(int n)
         {
            if(n%9==1)
                return true ;
            return false ;
         }
     }

1 个答案:

答案 0 :(得分:0)

嗯,我不是100%,你所放置的代码可以用来获得一个魔术数字#34;但我对这个问题的解决方法会有所不同。 首先,我收到一个字符串,这样我就可以用String.charat得到数字的不同数字。
然后,我会使用while循环对数字求和,直到得到一位数字,然后检查它是否为1。

代码是

boolean isMagicNumber(String number)
{

    int[] digits = new int[number.length()];
    int sum = 99;

    while(sum/10 >= 1)
    {
          sum = 0;
          for(int i = 0; i < number.length(); i++)
          {
              sum += Integer.parseInt(""+number.charAt(i));
          }

          if(sum == 1)
          {
               return true;
          }
    }

    return false;
}

可能有更好的解决方案,但这就是我要解决问题的方法。