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。

  • 編寫三個巢狀迴圈以獲取三個數字的所有組合。

    • 檢查方程的有效性。

    • 如果當前數字滿足方程,則遞增計數。

  • 返回計數。

實現

以下是上述演算法在 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

更新於: 2021-10-26

169 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.