打印C ++中所有因子的组合
在这个问题上,给我们一个数字n。我们的任务是打印因子n的所有组合。
让我们举个例子来更好地理解这个话题-
Input: 24Output:
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