10844번 - 쉬운 계단 수
문제 자체는 맞았는데 나누는 부분에 질문이 있어서요!!
sum += (d[n][i]) % 1000000000
printf("%d\n", sum% 1000000000)
이렇게 처리한거나
sum = (sum + d[n][i]) % 1000000000
printf("%d\n", sum% 1000000000);
이렇게 처리한거나 둘이 나오는 답은 같은 거 아닌가요?ㅠㅠㅠ
왜 둘이 왜 다르게 인식되는 건가요ㅜㅜ
이렇게 하면 오답으로 처리되네요ㅠㅠ
나머지 연산이 우선순위를 가지기 때문에
(d[n][i]) % 1000000000의 값이 sum에 계속해서 더해지게 되므로 오버플로우가 나는거 같네요
+=을 사용하고 싶으시다면
for (int i = 0; i <= 9; i++) sum += d[n][i], sum %= 1000000000;
@cubalys 그러네요 알려주신대로 고치니까 맞게처리됩니다 감사합니다
댓글을 작성하려면 로그인해야 합니다.
youu 6년 전
문제 자체는 맞았는데 나누는 부분에 질문이 있어서요!!
sum += (d[n][i]) % 1000000000
printf("%d\n", sum% 1000000000)
이렇게 처리한거나
sum = (sum + d[n][i]) % 1000000000
printf("%d\n", sum% 1000000000);
이렇게 처리한거나 둘이 나오는 답은 같은 거 아닌가요?ㅠㅠㅠ
왜 둘이 왜 다르게 인식되는 건가요ㅜㅜ
sum += (d[n][i]) % 1000000000
printf("%d\n", sum% 1000000000)
이렇게 하면 오답으로 처리되네요ㅠㅠ