Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

จำนวนโซลูชันอินทิกรัลไม่เป็นลบของสมการผลรวมใน C++


ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่หาคำตอบของอินทิกรัลที่เป็นจำนวนไม่เป็นลบของสมการผลรวม

สมการผลรวมคือ 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