Java 神奇数字-追求最简单的数字

Java 神奇数字-追求最简单的数字,java,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. 这就是一个神奇的数字 好吧,我不是100%认为你放置的代码可以得到一个“神奇的数字”,但我解决这个问题的方法会有所不同。 首先,我会收到一个字符串,这样

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

幻数是一个数字的总和最终为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. 这就是一个神奇的数字


好吧,我不是100%认为你放置的代码可以得到一个“神奇的数字”,但我解决这个问题的方法会有所不同。 首先,我会收到一个字符串,这样我就可以用
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;
}
布尔isMagicNumber(字符串编号)
{
int[]位=新的int[number.length()];
整数和=99;
而(总和/10>=1)
{
总和=0;
对于(int i=0;i

也许有更好的解决办法,但这就是我要做的来解决这个问题。

你说的是“幻数”。你应该包括一个定义,因为不是每个人都知道什么是幻数。此外,您的示例计算数字之和,但您的代码只执行模运算。他们没有共同之处。所以您的问题到底是什么?@Seelenvirtuose我已经在代码之前添加了一个定义,这样每个人都可以理解代码,并且使用模运算将代码分成几行,并且正在处理大多数示例。实际的代码可以由任何孩子编写,所以我决定这样做。如果有任何错误是得到任何魔术数字,请让我知道。啊。你是对的。定义就在那里。我只看例子。很抱歉但是,你的代码与此无关。@Seelenvirtuose你能帮我改进代码吗?这是魔术数字的最简单代码,我发现它几乎适用于所有的例子。关键是——它的工作原理超出了给定定义的逻辑。您知道,您可以在方法内部编写这三行代码,即
returnn%9==1对吗?代码比X长,但太长了,可以简化为更精确、更小的代码。
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;
}