此问题在此处已有答案:
(29个答案)
昨天关闭。
public static int[] plusOne(int[] digits) {
long n = 0;
for(int i = 0; i < digits.length; i++) {
n = n*10+digits[i];
}
System.out.println(n);
n = 0;
for(int i : digits) {
n = n*10+digits[i];
}
System.out.println(n);
return digits;
}
上面的代码根据我使用的循环打印了完全不同的n值,第一个输出“9876543210”,第二个输出“123456789”,我的输入数组是“{9,8,7,6,5,4,3,2,1,0}”。我正在将int[]数组更改为单个值,并且预期输出是经典for循环“9876543210”的结果。我的理解是,这些循环的工作方式基本相同。
1条答案
按热度按时间qvtsj1bj1#
此行将为您计算索引:
你必须通过查找来得到真实的的数字:
虽然这个表达式会直接给予你感兴趣的数字:
因此您不必查找而是直接使用它: