我想知道我做错了什么,我试图拆分int
的数字并将它们输入到Java中的数组中。我不知道什么是错的,我在处理阵列时遗漏了什么?
数组声明如下:
int[] digits = new int [100];
这是逻辑:
while (r > 0) {
// puts digits of n into array
count = 0;
sum = 0;
while (n != 0) {
digits[count] = n % 10;
count++;
n = n / 10;
}
// squares digits[] and populates into sum
for (i = 0; i < count; i++) {
sum = sum + digits[i]*digits[i];
}
// if sum is 1 then print 'Number is a happy number'
if (sum == 1) {
addItems(b);
r = 0;
} else {
r--;
}
}
任何帮助都会非常感激,因为我已经在网上浏览了几天而且没有找到任何真正的帮助
答案 0 :(得分:2)
我真的不明白你的代码。不过这就是我要做的事情:
public int[] intToDigitArray(int number)
{
int numberOfDigits = (int) (Math.ceil(Math.log(number) / Math.log(10.0f)));
int[] digits = new int[numberOfDigits];
for (int i = 0; i < numberOfDigits; ++i)
{
int digit = (number % powerOfTen(i + 1)) / powerOfTen(i);
digits[numberOfDigits - i - 1] = digit;
}
return digits;
}
public int powerOfTen(int exponent)
{
if (exponent == 0) return 1;
return 10 * powerOfTen(exponent - 1);
}
经过测试,有效:
System.out.println(Arrays.toString(intToDigitArray(1234445)));
打印:
[1, 2, 3, 4, 4, 4, 5]