자유 게시판 / Forum

polymult 제출하면 6, 7 만 틀렸다고나오네요

by swk4919, 10월 6일, 16:10

예시값들도 다 확인해봤고
3.out 같이 복잡한 계산도 파이썬코드로 직접 나온 결과와 비교까지 해서 다 맞다고 나왔는데
어디서 틀린건질 잘 모르겠네요.
혹시나해서 입력받은 항이 0일경우도 넣어봤고 예외는 거의 다 처리했다고 생각했는데 아닌가보네요
계산에 뭔가 복잡한 방법을 쓴것도 아니고
순수하게 다항식1 과 다항식2 의 계수는 곱하고 지수는 더하는 방식으로 계산해서
계산의 문제는 아닌것 같고 예외처리를 뭔가 못한것같은데
혹시 100점 나오신 학우분 있으신가요

rhs0610 , 10월 8일, 02:57
 저도 똑같이 6,7번만 틀려서 혹시나 이건가 했더니 역시나였군요 ㅎㅎ 감사합니다 
prof , 10월 6일, 23:21
 아마.. 대부분의 수강생들,

C/C++ 에서 정수 overflow는 말로는 많이 들어보았지만
실제 "터"진것은 아마 이번이 처음이지 싶습니다.

이런 일 자주 생깁니다. 그렇다고 모든 정수를 long long으로 잡으면
계산은 4배 이상 느려집니다. 작업이 많으면. 따라서 해결하고자 하는
문제의 상황을 잘 이해한 다음에 자료구조를 잡아야 합니다.

동영상 강의에서 항상 말을 하지만 "만능 자료구조"는 없습니다. 
jseori , 10월 6일, 23:04
 처음에 int형으로 했다가 교수님 말씀대로 int 범위를 초과하는 케이스가 있어서 long long으로 바꿔서 했더니 해결되었습니다 
whoRu , 10월 6일, 21:29
 혹시 어떤 자료형 사용하셨는지 알 수 잇을까요...?
자료형을 long long으로 바꿔도 7번만 틀리네요 ㅠㅠ 
prof , 10월 6일, 17:54
 자나깨나 overflow
꺼진 숫자 다시 보자.

From C/C++ people 
swk4919 , 10월 6일, 17:42
 오 숫자가 터진것이 맞았습니다.
자료형을 조금 바꿨더니 100점이 나왔습니다.
교수님 감사합니다. 
jseori , 10월 6일, 17:21
 댓글 다는 동안 교수님이 댓글을 달아놓으셨는데 배열 크기는 충분히 준 거 같은데 아.. 계산 할 때 int 범위,, 
prof , 10월 6일, 17:20
 C, C++에서 숫자 계산에는 항상 "터지는 것" 조심해야합니다.
그래서 느려도 터지지 않는  Python을 사람들이 좋아하지요. 
jseori , 10월 6일, 17:19
 저도 6, 7번 문제만 틀리다고 나오는데 어떤 예외적인 상황이 있는지 잘 모르겠습니다 ㅠㅠ
테스트 예제랑 6, 7번 빼고 다른 입력 값이 맞는 것으로 보아 로직은 틀린 게 없는 듯 한데..(입력 항도 혹시나 처리해 두었습니다)
일단 다른 예외 상황이 있는지 계속 생각 중 입니다. 
prof , 10월 6일, 17:19
 음... 더하는 것과 달리 곱할때는 계수가 곱해지거든요...

수를 10번 곱하면 꽤 커질들.   int로는 터질 것 같은데..

999*999*999*....