ในส่วนนี้เราจะเห็นปัญหาที่น่าสนใจอย่างหนึ่ง มีเหรียญ 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