有没有更好的逻辑可以应用于幻数? 还是有一个我错过的神奇数字? 请帮我解决这个最简单的工作代码!
幻数是一个数字,其总和最终会导致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 ;
}
}
答案 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;
}
可能有更好的解决方案,但这就是我要解决问题的方法。