반응형
도전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을 뺍니다.
실행결과입니다.
네 잘 출력되는 걸 볼수있습니다.
이상입니다.
반응형
'IT 개발 > C' 카테고리의 다른 글
[C언어] 열혈강의 C프로그래밍(윤성우 저) 도전! 프로그래밍 ONE. 도전3 (0) | 2020.12.30 |
---|---|
[C언어] 열혈강의 C프로그래밍(윤성우 저) 도전! 프로그래밍 ONE. 도전2 (0) | 2020.12.30 |
[C언어] 열혈강의 C프로그래밍(윤성우 저) 도전! 프로그래밍 ONE. 도전1 (1) | 2020.12.17 |
[C언어] 문자와 문자열에 관련된 그밖의 함수들 - atoi 함수, toupper 함수, tolower 함수 (0) | 2020.12.13 |
[C언어] 문자와 문자열에 관련된 그밖의 함수들 - strcmp 함수, strncmp 함수 (0) | 2020.12.13 |
최근댓글