whwotjd9090   9년 전

상위 소스를 보면 

n에 연도를 입력받고 n -= 4를 하여서

(char)(n%12+'A') 이렇게 하셨던데

음수를 나눠서 'A'를 더해도 이상한 값이 나오지 않나요?

mongsiry013   9년 전

나눗셈 연산에서

(-4)%12 = 8 

(-3)%12 = 9

(-2)%12 = 10

(-1)%12 = 11

0%12 = 0

1%12 = 1

........

........ 입니다.

h0ngjun7   9년 전

음.. 전 여태까지 그럴까봐 ( 뺄셈 + mod)%mod를 써왔었는데...ㅠㅠ

yukariko   9년 전

@mongsiry013

제가 알기로 음수가  그렇게 양수로 바뀌는건 아닌걸로 알고 있어요.

main(){printf("%d",(-2)%12);}

c로 코딩해보니 역시 -2 라는 결과가 나왔습니다.

mongsiry013   9년 전

제가 착각했었군요! c랑 java(1.7)에서는 출력이 마이너스로 나오는게 맞습니다.

저는 주로 파이썬을 사용하는데 파이썬에서는 제가 쓴 것과 같이 계산이 됩니다.

그럼 채점할 때 작은 수가 입력이 안되서 그러는 걸까요?

mongsiry013   9년 전

테스트 결과 아래 코드가 채점결과 맞은걸로 판정되었습니다.

테스트 입력에서 n이 4보다 작은 경우가 없어서 생기는 문제입니다

질문자님께서 언급하신 c코드는 잘못된 코드라고 생각해야 할 것 같습니다.

댓글을 작성하려면 로그인해야 합니다.