int main()
{
int total = 1;
for (int i = 1; i <= 100; i++)
{
if (i % 2 == 0)
total *= i;
}
cout << total << endl;
return 0;
}
이렇게 해봤는데 오버플로우가 발생하면서 매번 값이 0이 나옵니다
어떻게 하면 제대로 된 값을 얻을 수 있을까요?
int main()
{
int total = 1;
for (int i = 1; i <= 100; i++)
{
if (i % 2 == 0)
total *= i;
}
cout << total << endl;
return 0;
}
이렇게 해봤는데 오버플로우가 발생하면서 매번 값이 0이 나옵니다
어떻게 하면 제대로 된 값을 얻을 수 있을까요?
왜 오버플로우가 생기는데 - dc App
오버플로우가 발생하면 형을 바꾸죠??
근데 왜 생기죠???
100따리가 그정도야?
int 범위를 벗어나는 값이 나오니까요?
걍질문인데 c++ 왜함? - dc App
오버플로가 뭔지 모르냐 ㅇㅅㅇ
취미로 하는데요
int 형에서 표현할 수 있는 범위를 넘어선게 문제인 거니까 int 대신 더 큰 자료형을 쓰면 댐
__int64가 가장 큰 정수형 인거죠?
ㄴㄴ
각각의 숫자는 작지만 다 곱하면 ㅈㄴ크겠지 자료형은 ㅅㅂ 검색하면 10초만에 나온다 - dc App
total값이 너무 크니까 발생하는 거임 로직은 잘못되지 않았어