数字到数组

时间:2011-12-21 22:10:00

标签: java arrays

我想知道我做错了什么,我试图拆分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--;
        }
    }

任何帮助都会非常感激,因为我已经在网上浏览了几天而且没有找到任何真正的帮助

1 个答案:

答案 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]