로그인 유지
long형과int형 모두 32비트(+-2,147,483,646)의 범위의 값을 저장이 가능한데 20팩토리얼의 경우 이 저장범위를 넘어가기때문에
(20팩토리얼의 값은 2,432,902,008,176,640,000)
오버플로우가 발생해서 -값이 나오는거지.
만약 더 큰 값을 저장하고싶으면 long long형 자료형을 사용하면 되는데 long long이라는 명령어는 gcc컴파일러에서 사용이 가능하고 visual c에서는 안된다네.
visual c에서는 __int64를 사용하면 64비트(+-18,446,744,073,709,551,615)의 범위의 값이 저장이 가능하고 변수선언은 __int64 fact = 1;
pirntf에서의 출력은 %I64d를 사용하면 된다는군.
여기에 파일을 끌어 놓거나 왼쪽의 버튼을 클릭하세요.
파일 용량 제한 : 0MB (허용 확장자 : *.*)
업로드 중... (0%)
long형과int형 모두 32비트(+-2,147,483,646)의 범위의 값을 저장이 가능한데 20팩토리얼의 경우 이 저장범위를 넘어가기때문에
(20팩토리얼의 값은 2,432,902,008,176,640,000)
오버플로우가 발생해서 -값이 나오는거지.
만약 더 큰 값을 저장하고싶으면 long long형 자료형을 사용하면 되는데 long long이라는 명령어는 gcc컴파일러에서 사용이 가능하고 visual c에서는 안된다네.
visual c에서는 __int64를 사용하면 64비트(+-18,446,744,073,709,551,615)의 범위의 값이 저장이 가능하고 변수선언은 __int64 fact = 1;
pirntf에서의 출력은 %I64d를 사용하면 된다는군.