dmazpzp5526   2년 전

항상 질문을 올리고 싶었는데 10문제 채우고 이제야 올려보네요..

정답을 맞히지 않으면 다른분의 코드를 참고해 볼 수가 없어 조금 답답합니다

첨부한 소스는 1009 분산처리 문제의 소스입니다

머리로는 이게 왜 오답인가 싶은데.. 의견 부탁드립니다

제가 봤을땐 수행횟수가 좀 많아보이는 것 같아요

어차피 a를 b번 곱했을때의 1의 자리수가 출력 결과 인데 

이거는 b번 곱할 필요가 없고 최대로 4번만 곱해도 됩니다.

왜냐면 a가 2고 b가 8이라고 하면

2 4 8 16 32 64 128 256 에서 1의 자리수는 2 4 8 6이 계속 반복됩니다. 다른 경우도 마찬가지에요. 3 9 7 1 3 9 7 1 ...

그래서 이걸 이용해서 수행횟수를 줄여보세요.

아 그리고 덧붙여서 저 코드에서 오류는  

a = (int *)malloc(case_num + 1);

b = (int *)malloc(case_num + 1);

sum = (int *)malloc(case_num + 1);


이 부분이네요... malloc 다음에 나오는 숫자만큼의 바이트를 할당하는 건데..

int는 4바이트라.. 

dmazpzp5526   2년 전

답변 감사합니다 ^^

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