easy software

C언어 공식을 코드로 변경해보자! 본문

C언어/기타

C언어 공식을 코드로 변경해보자!

JAVA 웹개발자 2015. 1. 11. 14:20

이번에는 '2*k승 <= n 이다.'라는 공식을 코드로 변경하는 예제를 해보겠습니다.

 

사용자가 1024를 입력하면 k는 10이라고 출력해주고, 512를 입력하면 9라고 출력해주는 예제입니다.

 

공식을 보면 당황하는 경우가 상당히 많은데, 저번에 소개해드렸던 시간을 코드로 구현하는 것 처럼 일단 시도해보면 크게 어렵지 않다는 걸 느끼실 겁니다.

 

이번 공식에서의 문제를 푸는 힌트는 2를 몇 번 곱해야 사용자가 입력한 값이 되느냐 입니다.

 

그 내용을 반복문으로 구현하면 간단하게 풀 수 있는 문제입니다.

 

#include <stdio.h>

 

int main(void){

 

 int input;
 int count = 0;

   

      printf("상수 n 입력 : ");
      scanf_s("%d", &input);

 

//사용자가 입력한 값이 1이 될때 까지 나눔

 while (input != 1){

//2의 0승은 0이므로 조건을 만족시켜 반복문 탈출(count는 초기값 0)
      if (input == 0)
           input = 1;

 

//2보다 큰수를 입력한다면 1이 될 때 까지 나눔(count를 증가시켜 2를 몇번 곱했는지 계산)

     else{
           input /= 2;
           count++;
      }
 }

 

printf("공식을 만족하는 k : %d\n", count);

 

     return 0;
}

Comments