2014-04-04 2 views
1
switch (n.mod(BigInteger.valueOf(8))) { 
    case 1: 
    case 7: 
     jacobi = BigInteger.valueOf(1); 
     break; 
    case 3: 
    case 5: 
     jacobi = BigInteger.valueOf(-1); 
     break;} 

"BigInt를 int로 변환 할 수 없습니다."가 나타납니다. 스위치도 상수 표현식을 원하므로 BigInteger.valueOf (1)를 넣을 수 없습니다.BigInteger 스위치 케이스

답변

2

mod 방법은 다른 BigInteger를 반환하고, BigIntegerNumber, 그래서 당신은 단지 switch 인수 할 수있는 int를 얻을 수 intValue()를 호출 할 수 있습니다.

switch (n.mod(BigInteger.valueOf(8)).intValue()) { 
+0

@BackSlash 원래 'n'은 내가 아는 모든 것에 대해 엄청나게 클 수도 있지만 나머지는 mod '8'로 잡히면 작아집니다. – rgettman