Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C/C++ สำหรับหาความสูงสูงสุดเมื่อจัดเหรียญเป็นรูปสามเหลี่ยม


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

โปรแกรม C/C++ สำหรับหาความสูงสูงสุดเมื่อจัดเหรียญเป็นรูปสามเหลี่ยม

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

สามารถหาความสูงได้โดยใช้สูตรดังนี้:

โปรแกรม 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