프로그래밍/C·C++
통나무 최상단 개수 , 최하단 개수 판단하기
긴자손-1
2009. 10. 13. 11:13
반응형
안정된 형태로 통나무를 쌓기 위해서는 아래 그림과 같이 최하단 부터 쌓기 시작하여 한 층 위로 올라갈 때 마다 통나무 개수가 한 개씩 줄어 들도록 해야 한다. 이 때 최상단에 놓인 통나무의 수는 바로 아래 층의 통나무 개수보다 한 개 이상 적다. N 개의 통나무를 안정된 형태로 쌓으려고 할 때 , 최 상단에 놓일 수 있는 통나무의 개수와 이 때 최하단에 놓이는 통나무의 개수를 구하는 프로그램을 작성하시오. 단, 가능한 최하단에 놓이는 통나무의 수를 최소로 하는 답을 구하여 야 한다.프로그램 명: log
입력 형식
통나무의 개수가 입력된다. 통나무의 개수는 300 이하의 자연수이다.출력 형식
최 하단과 최 상단에 놓일 통나무 수를 출력한다.입출력 예
입력
18
출력
6 3
입력
19
출력
6 1
#include <stdio.h>
void main(){
int n,temp,i=1,j,height;
scanf("%d",&n);
temp = n;
while(n>0){
n = n-i;
i++;
}
height=i-1;
printf("%d",height);
j=height;
while(temp>height){
temp=temp-height;
height--;
}
printf(" %d",temp);
}
반응형