입력 : 10000
출력 : 10
답 : 20
===============
입력 : 11001
출력 : 14
답 : 31
1373번 - 2진수 8진수
입력 : 10000
출력 : 10
답 : 20
===============
입력 : 11001
출력 : 14
답 : 31
제 컴에서는 정답대로 잘 나오는데요?ㅠㅠ
알고리즘 자체는 맞은 거 같아요~
문제는. fgets를 잘못 이해하고 계시다는 건데요.
C의 fgets의 입출력 종료 조건은 다음과 같습니다.
1. 개행 문자를 입력받았을 때
2. 버퍼 크기 - 1만치 입력 받았을 때
3. EOF를 읽었을 때. (End of File)
3인 경우가 문제입니다. (1)에 대해서만 테스트를 하신 거 같으신데요.
EOF에 대해서 찾아보시는 걸 추천드립니다~
https://www.tutorialspoint.com...
fgets로 입력받을 때, 항상 개행이 문자열 맨 끝에 온다고 생각하시면 안 됩니다.
그렇군요 꼼꼼하지 못했습니다! 감사합니다!~ bb
댓글을 작성하려면 로그인해야 합니다.
glow153 7년 전
소스가 조금 난잡합니다...
원리는 입력된 이진수 스트링의 맨 뒤에서부터 3자리씩 가져와서 8진수로 바꾼 값을 oct[]의 맨 뒤에서부터 채워넣는 거거든요
왠만한 테스트케이스는 다 넣어봤는데 자꾸 틀리다고 나와서요 ㅠㅠ
조언을 구합니다!