打印C ++中所有因子的组合

在这个问题上,给我们一个数字n。我们的任务是打印因子n的所有组合。

让我们举个例子来更好地理解这个话题-

Input: 24

Output:

2 2 2 3

2 4 3

8 3

4 6

2 12

为此,我们将使用递归函数,该函数将找到数量因子的组合。我们将所有组合存储在一个数组数组中。

示例

此代码将显示我们解决方案的实现。

#include<bits/stdc++.h>

using namespace std;

vector<vector<int>> factor_Combo;

void genreateFactorCombinations(int first, int eachFactor, int n, vector<int>factor) {

   if (first>n || eachFactor>n)

      return;

   if (eachFactor == n){

      factor_Combo.push_back(factor);

      return;

   }

   for (int i = first; i < n; i++) {

      if (i*eachFactor>n)

      break;

      if (n % i == 0){

         factor.push_back(i);

         genreateFactorCombinations(i, i*eachFactor, n, factor);

         factor.pop_back();

      }

   }

}

void printcombination() {

   for (int i = 0; i < factor_Combo.size(); i++){

      for (int j = 0; j < factor_Combo[i].size(); j++)

         cout<<factor_Combo[i][j]<<"\t";

      cout<<endl;

   }

}

int main() {

   int n = 24;

   vector<int>single_result_list;

   cout<<"All Factor combinations of "<<n<<" are :\n";

   genreateFactorCombinations(2, 1, n, single_result_list);

   printcombination();

   return 0;

}

输出结果

All Factor combinations of 24 are −

2 2 2 3

2 2 6

2 3 4

2 12

3 8

4 6

以上是 打印C ++中所有因子的组合 的全部内容, 来源链接: utcz.com/z/316452.html

回到顶部