ในส่วนนี้ เราจะมาดูโจทย์ที่น่าสนใจหนึ่งโจทย์ มีเหรียญทั้งหมด N เหรียญ เราต้องการหาว่าสามารถสร้างพีระมิดได้สูงสุดเท่าไหร่ โดยการจัดเหรียญในรูปแบบที่แถวแรกมี 1 เหรียญ แถวที่สองมี 2 เหรียญ และเพิ่มขึ้นเรื่อยๆ

จากแผนภาพ จะเห็นว่าการสร้างพีระมิดความสูง 3 ต้องใช้เหรียญขั้นต่ำ 6 เหรียญ ไม่สามารถสร้างความสูง 4 ได้จนกว่าจะมีเหรียญ 10 เหรียญ ให้เราดูวิธีการหาความสูงสูงสุดกัน
สามารถหาความสูงได้โดยใช้สูตรดังนี้:

ตัวอย่างโค้ด
#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