ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่หาคำตอบของอินทิกรัลที่เป็นจำนวนไม่เป็นลบของสมการผลรวม
สมการผลรวมคือ x + y + z =n คุณได้รับหมายเลข n คุณต้องหาจำนวนคำตอบของสมการ มาดูตัวอย่างกัน
ป้อนข้อมูล
2
ผลผลิต
6
วิธีแก้ไขคือ
0 0 2 0 1 1 0 2 0 1 0 1 1 1 0 2 0 0
อัลกอริทึม
-
เริ่มต้นจำนวน m.
-
เริ่มต้นการนับเป็น 0
-
เขียนลูปซ้อนกัน 3 วงเพื่อให้ได้ตัวเลขทั้งหมด 3 ตัว
-
ตรวจสอบความถูกต้องของสมการ
-
หากตัวเลขปัจจุบันตรงกับสมการ ให้เพิ่มจำนวนขึ้น
-
-
คืนค่าการนับ
การนำไปใช้
ต่อไปนี้เป็นการนำอัลกอริธึมข้างต้นไปใช้ใน C++
#include <bits/stdc++.h>
using namespace std;
int getEquationSolutionCount(int n) {
int count = 0;
for (int i = 0; i <= n; i++) {
for (int j = 0; j <= n - i; j++) {
for (int k = 0; k <= n - i - j; k++) {
if (i + j + k == n) {
count++;
}
}
}
}
return count;
}
int main() {
int n = 10;
cout << getEquationSolutionCount(n) << endl;
return 0;
} ผลลัพธ์
หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้
66