大家好,这可能是一个愚蠢的问题,但我被困住了。 我正在研究循环数字代码。完成后,我将所有整数放入数组中,然后在数组的开头有一些空单元格,必须清理或放入具有适当数量元素的另一个数组。那么如何在开始时摆脱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]);
答案 0 :(得分: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。
这就是为什么&#34;阵列开头的空单元&#34;打印后显示0。