0

大家好,这可能是一个愚蠢的问题,但我被卡住了。我正在研究循环数字代码。完成后,我将所有整数放入数组中,但此后数组开头有一些空单元格必须被清理或放入另一个具有适当数量元素的数组中。那么如何摆脱一开始的0。

这是我的循环数的代码:

public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        int carry = 0;

        int[] cyclic = new int[60];
        int lastDigit = input.nextInt();
        cyclic[cyclic.length - 1] = lastDigit;



            for ( int i = cyclic.length - 2; i >= 0; i--) {

                cyclic[i] = lastDigit * cyclic[i + 1];
                cyclic[i] += carry;
                if (cyclic[i] > 9) {
                    carry = cyclic[i] / 10;
                    cyclic[i] %= 10;
                } else
                    carry = 0;
                if (cyclic[i]==1 & cyclic[i+1]== 0)
                    break;
            }

            for (int j = 0; j < cyclic.length; j++)
                System.out.print(cyclic[j]);
4

1 回答 1

1

您正在以相反的顺序填充 60 个元素 [0 到 59] 的数组,即从 59 然后 58 然后 57 等等。

打印时,您正在从索引 0、1、2 等打印它。

这是您应该修复的第一件事,从 0,1,2 填充它们或从 59,58 打印它们等等。

你得到 0 的原因是当你说,

int[] cyclic = new int[60];

cyclic有 60 个整数的内存,所有 60 个值现在都初始化为 0。当您为其分配内存时,原始数据类型初始化为 0。这就是为什么“数组开头的空单元格”在打印后显示为 0。

于 2016-07-07T07:45:08.203 回答