정말 모르겠어서 노가다 뛰었는데..

cwyoo01 Reply 4 years 29 weeks ago
인터넷 찾아보니까 중국인의 나머지정리가 서로소일 때 풀이밖에 없더라고요 그래서 입력받은 n1, n2, n3의 각각의 관계가 서로소인지 확인한 다음에 서로소라면 바로 중국인의 나머지 정리를 쓰고 서로소가 아니라면 서로소로 만들어서 중국인의 나머지 정리를 썼습니다 sample output은 잘 나오고 discuss에 있던 다른 인풋 아웃풋인 2 0 3 0 5 0을 넣어봐도 30 0 으로 잘 나오는데 어떻게 해야하나요?ㅜㅜ
withcs2 Reply 4 years 29 weeks ago
determine 함수에서 변수 1로 만들고 반복문 break하고 return dis하는 것보다는 반복문에서 바로 return 1 해버리고 가장 바깥에서 return 0하는게 더 효율적입니다 dis가 전부 0이 아닐수도 있습니다 if (dis1 == 0 && dis2 == 0 && dis3 == 0) 여기서는 서로소 만들어주는 과정이 보이지 않네요 서로소로 만들어주는 과정이 틀렸습니다ㅜㅜ 서로소로 만들 때 식을 변형할거면 모든 식울 다 변형해야해요. 이렇게 풀 때는 식 두개짜리 중국인나머지정리 먼저 풀고 그 다음에 남은수식으로 중국인 나머지정리 한번 더 푸는게 좋아요 * 이 문제는 0부터 lcm까지 모두 검사하는 진짜 노가다로 풀어도 풀리게 만들었어요!