자바 알고리즘 무한루프 질문있습니다


어떤 수 N(1≤N≤1,000,000) 이 주어졌을 때, N의 다음 큰 숫자는 다음과 같습니다.

N의 다음 큰 숫자는 N을 2진수로 바꾸었을 때의 1의 개수와 같은 개수로 이루어진 수입니다. 1번째 조건을 만족하는 숫자들 중 N보다 큰 수 중에서 가장 작은 숫자를 찾아야 합니다. 예를 들어, 78을 2진수로 바꾸면 1001110 이며, 78의 다음 큰 숫자는 83으로 2진수는 1010011 입니다. N이 주어질 때, N의 다음 큰 숫자를 찾는 nextBigNumber 함수를 완성하세요.

라는 문제를 풀고 있습니다.

이미지

숫자를 이진수로 바꾸고 배열에 저장하여 1의 개수를 비교를 하려고 하는데 while문에 분명히 break문을 넣었는데 빠져나오지 못하고 계속 돕니다. 왜 그러는 걸까요?

  • 2017년 10월 09일에 작성됨
조회수 103


1 답변


좋아요
2
싫어요
채택취소하기

while에서 돌때 cnt2를 0으로 초기화를 안하니 cnt2가 계속 숫자가 증가해서 cnt와 같은 값을 가질 수 없네요

  • 2017년 10월 10일에 작성됨

  • 아 그부분을 놓쳤네요 감사합니다!!ㅎㅎ    문주영   2017.10.10 13:52     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close