le_effort   5년 전

2자리수까지는 한수가 99개에다가

3자리수부터 1개씩 추가하는식으로 하고있는데 뭐가 잘못된걸까요?

ho94949   5년 전

코드에서 j와 n이 섞여있어요

le_effort   5년 전

for(j=100;i<=n;j++)

이부분 말씀하시는 건가요?

100부터 입력한 값까지 반복문 돌려아하는거라 맞지 않나요?

ho94949   5년 전

20-22라인에서 왜 n을 10으로 나누나요?

le_effort   5년 전

제가 의도한 바는

20-22 라인 반복문을 수행해서 얻는 값이

a[0]번째 값은 123일경우 10을 나누어 얻는 나머지 값 즉 3

그 후 123을 10으로 나눠 몫으로 12 라는 자리수를 얻고

a[1]번째 값은 12를 10으로 나눈 나머지값 2

그 후 12를 10으로 나눠 몫으로 1을 얻고

a[2]번째 값은 1을 10으로 나눈 나머지 값 1

즉 a[0] = 3

a[1]=2

a[2]=1

이렇게 구현하려고 했어요

ho94949   5년 전

그러면 j의 값과는 반복문이 상관이 없나요? j의 각 자리를 분리해야하는거 아닌가요?

le_effort   5년 전

아 N이 아니라 j로 나눠야되는거네요

j로했는데도 안되는데 뭐가 잘못된 걸까요..

ho94949   5년 전

그건 아마 n = 1000 때문일겁니다

le_effort   5년 전

최종으로 수정한게 이것인데

123을 입력하면 아무런 값이 나오지않아요 /..

jaehoo1   5년 전

이중 for문 안에서 j 값을 변경하기 때문에,

j<n 조건을 만족하지 못하여 무한루프를 돌게됩니다

le_effort   5년 전

아하...... 그럼 어떻게 수정해야할까요...?

jaehoo1   5년 전

temp라는 변수를 추가해서 j값의 변경을 막으면 무한루프는 아닙니다.

하지만 이 소스도 틀렸으니, 어디가 틀렸을지 생각해보세요

le_effort   5년 전

제가 생각해 봤는데

temp를 10으로 나눠도

두번째 반복문 될 때 temp에 다시 j값이 들어가는게 오류인거 같아요

근데 이걸 어떻게 바꿔야하는지 ㅋ.ㅋ...ㅠㅠ

jaehoo1   5년 전

아직 못푸신거 같아서 답변을 더 드리겠습니다.

for문의 j < n 을 j <= n 으로 바꾸면 됩니다

예를 들어 n이 123일 경우, j가 122까지만 돌고 탈출하기 때문에

123의 경우를 세주지 못하기 때문에 틀립니다

le_effort   5년 전

네,,, 그거 j<=n 은 제가찾아서 했는데

문제는 이대로 돌리면 100넘어가는 숫자를 입력해도 제가 입력한 숫자대로 뜨네요...

le_effort   5년 전

이런식으로 바꿔도 제출하면 틀렸다고 뜨네요..

jaehoo1   5년 전

8번줄 지우시면 됩니다

le_effort   5년 전

와............. 감사합니다

근데 8 번째 줄 단순한 출력문인데 왜 있으면 틀리고 없으면 맞나요...?

jaehoo1   5년 전

BOJ에서의 채점은 출력과 정답을 비교합니다

정답에는 "값입력" 이라는게 없으니 틀리게됩니다

https://www.acmicpc.net/help/j...

채점 방식

입력은 Standard Input(stdin)에서 받아야 하고, 출력은 Standard Output(stdout)에 해야 합니다.

문제 별로 준비되어 있는 데이터 파일을 하나씩 넣어서 실행해보고 그 출력 파일과 미리 구해 놓은 정답 파일과 비교합니다.

문제의 출력 형식을 지키지 않으면, 틀리게 됩니다. 예를 들어, N과 M을 입력하세요.와 같은 메시지를 화면에 출력하는 것 입니다.

le_effort   5년 전

친절한 답변 감사합니다 !!

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