fantasy7772   3년 전

제목에서 말씀드린 것과 같이 모듈 연산을 하는 이유와 rs변수를 왜 꼭 long long으로 사용하여야 하는지 잘 모르겠습니다!!

dldyddlwl   3년 전

1) rs 변수의 long long의 필요성에 대해

rs변수를 꼭 long long으로 하지 않으셔도 됩니다. 아래의 코드를 보시면, 우선 저희가 mod 연산을 10억으로 하지 않습니까? 이중 for 루프내에서 각각의 num배열의 원소들은

mod연산을 거쳐서 10억보다 작은 수들로 이루어져 있습니다. 그런데 int형 범위는 약 이십 몇억 정도입니다. 그렇다면, 10개의 num을 더하다보면 int형 범위를 벗어날 수 있어서

rs를 long long으로 한 것입니다. 하지만, 아래와 같이 각각의 연산에 mod를 해준다면 long long일 필요가 없습니다!! (int형도 가능)

2) module 연산의 필요성

사실, 제가 질문의 의도를 정확히 모르겠습니다

1번. 정말로 왜 mod 연산 자체가 필요한가?

=> 답이 굉장히 커서, 데이터타입 내에 모두 담을 수가 없음. 따라서, 나머지연산을 통해 답의 일부를 담아낼 수가 있음

2번. 왜 하필 여기서 mod 연산이 필요한가?

아래의 코드를 보시면, else문에서 두 수의 합을 구하는 과정이 있습니다. 이 두 수가 작을 때에는 문제가 되지 않지만, 점점 커진다면, int형의 범위를 벗어날 수 있습니다.

따라서 두 수의 합을 구하는 과정 후에, mod 연산이 반드시 있어야만 합니다. (모든 수가 10억보다 작은 수가 되므로, 두 수의 합은 반드시 20억보다 작아서 int형에서 안전하게 연산 가능)

fantasy7772   3년 전

답변 정말 감사합니다!!!!

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