Num array to an int:当数组长度为9时,它工作正常。但是随着长度增加到 10,我没有得到正确的值

Num array to an int: When the length of array is 9, it works fine. But as the length increases to 10, I am not getting the correct val

我有以下数组:

int digits[] = {9,8,7,6,5,4,3,2,1,1};

我希望我的主要功能的输出如下:

9876543211

但我得到:

1286608619

对于 digits = [9,8,7,6,5,4,3,2,1] 我得到了预期的结果 987654321

我知道这与 int 的大小有关,有人可以指出我需要做哪些更改吗?

public class practice
{
  public static void main(String[] args)
  {
    int digits[] = {9,8,7,6,5,4,3,2,1,1};
    int j = 1;
    int sum = 0;
    int carry = 0;
    for (int i = digits.length-1; i >= 0; i--)
    {
      sum = sum + digits[i] * j;
      j = j * 10;
    }
    System.out.print(sum);
  }
}

将 digit 和 sum 类型从 int 更改为 long