neity16   5년 전

이문제는 테스트케이스의 수가 N으로 정해져있기때문에 다른곳에서 틀릴게없다고생각했는데 당황스럽네요..도와주세요!

kyo20111   5년 전

K의 크기를 참고하세요.

jung2381187   5년 전

입력되는 수의 제한을 보시면 최대 61자리 수입니다. 당연히 int로는 저장이 안 됩니다.

neity16   5년 전

unsigned long long으로 선언하고 예외처리했는데도 왜오류가뜰까요?!

kyo20111   5년 전

unsigned long long 자료형은 최대  2^64인

18446744073709551616

까지 저장할 수 있습니다. 최대로 따지면 19자리까지겠네요.


문자열로 처리하면 쉽게 해결이 가능합니다..

kyo20111   5년 전

2^64 - 1 이에요 순간 잘못생각했네요

neity16   5년 전

제가혼자 어렵게푼건지모르겠는데..

전체케이스를 한번에 받아야한다고생각해서 char 더블포인터로 char*의 개수를 동적할당하였고 각 자리수는 61까지만들어놓았습니다 그리고 마지막 61번째인덱스인 [60]에

널문자를 넣어놓았으며 60자리 이상입력하면 널문자가 사라지므로 이것으로 구별하게했네요 혹시 틀린부분 있으면 지적해주세요 ㅠㅠ

kyo20111   5년 전

24번째 줄에 문제가있네요 int로 저장이 안되는 큰 수 때문에 문자열로 입력을 받았는데 다시 int형으로 바꾸시네요..

kyo20111   5년 전

홀수와 짝수를 구분하시려면 일의자리만 확인하면 됩니다

neity16   5년 전

우선 감사합니다 덕분에 풀수있었습니다!

그런데 제가 너무이상하게 돌려서푼건아닌지 그런생각이드네요

전 문제를 보고 입력을 한번에 다받아야한다고생각해서 char** 를이용해 char*를 동적할당했구요

이렇게 만들어진 문자열의 끝이 몇번째 인덱스인지 알기위해서 int* 를 이용해 또 동적할당해서 카운트를 하나씩 셌어요..

뭔가 비효율적인 프로그래밍을 하는 느낌이라서 자신감이안들기도하네요 어떻게생각하시나요?

djm03178   5년 전

정답을 받고 나면 채점 현황에서 다른 사람들이 공개한 코드를 볼 수 있으니, 읽어보면 도움이 될 것들이 있을 것입니다.

제가 문제 해결에 사용한 다음 코드를 보고 어떻게 단순화할 수 있는지 생각해 보세요.

neity16   5년 전

도움주셔서 감사합니다~

혹시 

if ((k[strlen(k) - 1] - '0') % 2) 이부분에서 마지막 일의자리를 가져오는것은 이해가되는데 - '0'은 어떤걸의미하는지 알수있을까요?

djm03178   5년 전

문자열로 입력받은 숫자들은 정수로 입력받은 것과는 달리 '숫자 문자'입니다. 아스키 코드에 대해 알아보시면 될 것 같습니다.

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