สมมติว่าเรามีตัวเลข n เราต้องตรวจสอบว่าตัวเลขนี้เป็นเลขสามเหลี่ยมหรือไม่ ตามที่รู้กัน ถ้าจุด (หรือลูกบอล) n จุดสามารถจัดเป็นชั้นๆ เพื่อสร้างสามเหลี่ยมด้านเท่าได้ แล้ว n จะเป็นเลขสามเหลี่ยม
เช่น ถ้าอินพุตคือ n = 10 เอาต์พุตจะเป็น True
ขั้นตอนการแก้ปัญหา
for i := 1 ถึง n:
if i * (i + 1) == 2 * n:
return true
return false
ตัวอย่างโค้ด
#include <bits/stdc++.h>
using namespace std;
bool solve(int n) {
for (int i = 1; i <= n; i++) {
if (i * (i + 1) == 2 * n) {
return true;
}
}
return false;
}
int main() {
int n = 10;
cout << solve(n) << endl;
}
อินพุต
10
เอาต์พุต
1