Project Euler (문제가되는 사이트)에서 문제 번호 10의 이상한 경험을했습니다. 할당은 2 백만 미만의 모든 소수의 합을 계산하는 것이 었습니다.C#에서 int에 대한 오버플로 예외가 없습니까?
나는 합계에 int를 사용했고, 내 알고리즘은 답을 냈지만 답을 확인하기 위해 붙여 넣었을 때 틀렸어.
결과가 너무 커서 int에 맞지는 않지만 오버플로 오류가 발생하지 않았습니까? 대신 방금 실제 응답에서 멀리 떨어진 값을 반환했습니다.
유형을 길게 변경하면 모든 것이 늠름한 것이 었습니다.
당신은 정말 모든 정수 작업이 오버 플로우를 확인 하시겠습니까 것입니까? –
글쎄,이 특별한 경우에 shure가 나에게 시간을 절약 해 주었다;) – erikric
이 경우 yes입니다. 대다수의 작업은 오버플로가 될 수 없습니다. 컴파일러가이를 증명하고 결과로 검사를 사용하지 못하게하는 것이 흥미로울 것입니다. 그러나 나는 그것이 매우 의심 스럽습니다. – Thorarin