Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

동전을 삼각형으로 배열할 때 최대 높이를 위한 C/C++ 프로그램?

<시간/>

이 섹션에서 우리는 한 가지 흥미로운 문제를 볼 것입니다. N개의 동전이 있습니다. 우리는 동전을 피라미드로 배열할 때 만들 수 있는 최대 높이를 찾아야 합니다. 이런 식으로 첫 번째 줄에는 1개의 동전이, 두 번째 줄에는 2개의 동전이 들어가는 식입니다.

동전을 삼각형으로 배열할 때 최대 높이를 위한 C/C++ 프로그램?

주어진 다이어그램에서 높이가 3인 피라미드를 만들려면 최소 6개의 동전이 필요하다는 것을 알 수 있습니다. 우리는 10개의 동전이 생길 때까지 높이 4를 만들 수 없습니다. 이제 최대 높이를 확인하는 방법을 알아보겠습니다.

이 공식을 사용하여 높이를 얻을 수 있습니다.

동전을 삼각형으로 배열할 때 최대 높이를 위한 C/C++ 프로그램?

예시

#include<iostream>
#include<cmath>
using namespace std;
int getMaxHeight(int n) {
   int height = (-1 + sqrt(1 + 8 * n)) / 2;
   return height;
}
main() {
   int N;
   cout << "Enter number of coins: " ;
   cin >> N;
   cout << "Height of pyramid: " << getMaxHeight(N);
}

출력

Enter number of coins: 13
Height of pyramid: 4