喂,伙计们,这可能是个愚蠢的问题,但我被卡住了。我正在研究循环数字代码。完成后,我将数组中的所有整数放入数组中,但是,在数组开头有一些空单元格,必须清除这些单元格,或者将其放入具有适当数量元素的另一个数组中。那么如何在开始的时候去掉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]);发布于 2016-07-07 07:45:08
您正在以相反的顺序填充60个元素的数组,即从59到58,然后是57,等等。
在打印时,您将从索引0、1、2等进行打印。
这是你应该修复的第一件事,从0,1,2填充它们,或者从59,58打印它们等等。
你得到0的原因是你说,
int[] cyclic = new int[60];cyclic有60个ints的内存,所有60个值现在都用0初始化。当您将内存分配给原始数据类型时,将使用0初始化它。这就是为什么“数组开头的空单元格”打印后显示为0的原因。
https://stackoverflow.com/questions/38239695
复制相似问题