반응형
안정된 형태로 통나무를 쌓기 위해서는 아래 그림과 같이 최하단 부터 쌓기 시작하여 한 층 위로 올라갈 때 마다 통나무 개수가 한 개씩 줄어 들도록 해야 한다. 이 때 최상단에 놓인 통나무의 수는 바로 아래 층의 통나무 개수보다 한 개 이상 적다. 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);
}
반응형
'프로그래밍 > C·C++' 카테고리의 다른 글
| 피보나치 수열 함수로 구현 (0) | 2009.10.13 |
|---|---|
| 팩토리얼 재귀함수로 구현하기 (0) | 2009.10.13 |
| C언어 x의 n승 구하기 (0) | 2009.10.13 |
| C언어 암스트롱 수 연산하기 (0) | 2009.10.13 |
| c언어에서 실수형이 정확하지 않은 이유~ (0) | 2009.10.12 |