반응형

도전7. 사용자로부터 숫자 n을 입력받는다. 그리고 나서 다음 공식이 성립하는 최대 k 값을 계산해서 출력하는 프로그램을 작성해 보자.

2^k <= n 

 

이것 또한 알고리즘 자체는 어렵지 않습니다.  

숫자 하나를 입력받고, 반복문을 이용하여 2를 계속 곱해나가다가, 입력받은 숫자보다 커지는 시점에서 

반복문을 나가서, 곱한 횟수-1을 출력하면 됩니다. 

 

 

의사코드 

 

숫자 하나를 입력받습니다. 

 

for(i는1부터; 무한대로 1씩 증가) 

 변수에 2를 곱함 

  if(곱한 값이 입력값보다 크면) 

    반복문 탈출 

 

i-1값을 출력 

 

실제 코드입니다. 

18번째 줄을 잘 보시면 for(초기조건;탈출조건;증,감)인데 중간에 탈출조건이 비어있습니다. 

그 반복문 탈출을 if문을 사용해 특수한 상황에만 탈출하게 해놨구요. 

for문 안의 3가지 조건은 임의로 한두칸 비워놔도 문법상 문제가 없습니다. 

반복문이 잘 작동되게 코드만 해놓으면 상관없습니다. 

20번째 줄에 mul = mul * 2 를 mul*=2 로 표현했습니다. 

21번째 줄에서 반복문을 탈출하고, 

25번째 줄에는 i를 출력하는데, 탈출할 당시에는 2^k이 n보다 큰 값이므로 

i값을 1을 뺍니다. 

 

실행결과입니다. 

네 잘 출력되는 걸 볼수있습니다. 

 

이상입니다. 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기