PROGRAMMING CODE/C
[BAEKJOON] No.1094 C언어
daye_
2021. 10. 19. 03:13
막대기
#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;
}