sj3mo   3년 전

입력받은 약수들 중 최대와 최소를 곱해서 답을 낼 수 있다는 것을 알고 성공을 하기는 했지만, 기존에 처음으로 작성한 다음과 같은 코드에 어떤 문제가 있는지 잘 모르겠습니다..! 문제에 나와있는 예시 말고도 다른 수의 약수들의 경우로 10개정도 대입해 보았는데( 큰수 포함 / 섞어서도 해봄) 뜻하는 대로 답이 나왔습니다. 출력 문제도 아닌 듯한데, 혹시 어떤 곳에서 문제가 있는지, 혹은 반례가 있는지 궁금합니다!

ex)

6

2,4,8,17,34,68

--> 출력: 136

10

4 32 128 1024 64 8 2 512 256 16

--> 출력 : 2048

ehdrmsl2001   3년 전

num=1인 경우에 23번째 줄 반복분이 아예 실행되지 않겠죠

따라서 success가 참이 될 수가 없어서 무한루프 도는 거 같습니다

sj3mo   3년 전

아하 num이 1일 때는 생각을 못해봤네요ㅠ 말씀대로 기존 8, 10째 줄 사이에

 if(num==1) {cout << a[0]*a[0]; return 0;}

이라는 코드를 추가했는데, 이래도 "틀렸습니다"라고 뜨네요 시간초과 혹은 다른 오류가 아니라 말이죠 ㅠ 혹시 생각나시는 것이 있으신지...

ehdrmsl2001   3년 전

2

3 9

정답이 27 나와야 되는데 18 나오네요

sj3mo   3년 전

원인을 찾았네요 도와주셔서 감사합니다 !!

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