막대기
#include <stdio.h>
int check(int n,int *bar){
for(;;){
if(n>=*bar) return *bar; //막대의 크기가 n보다 크거나 같다면 그대로 return (초기의 연산)
*bar/=2;
if(*bar<n) return *bar; //막대의 크기가 n보다 작아지는 즉시 bar return
}
}
int main(int argc, char* argv[]){
int n,num=0,bar=64;
scanf("%d",&n);
while(1){
if(n==0)break; //n이 0이되면 연산 끝
n -= check(n,&bar); //원하는 크기에서 bar를 빼준다.
num++; //bar의 개수
}
printf("%d\n",num);
return 0;
}
'PROGRAMMING CODE > C' 카테고리의 다른 글
[BAEKJOON] No.1032 C언어 (0) | 2021.10.19 |
---|---|
[BAEKJOON] No.1026 C언어 (0) | 2021.10.19 |
[BAEKJOON] No.1010 C언어 (0) | 2021.10.19 |
[BAEKJOON] No.1075 C언어 (0) | 2021.10.19 |
[BAEKJOON] No.5086 C언어 (0) | 2021.10.19 |