Computer >> Máy Tính >  >> Lập trình >> C ++

In tất cả các kết hợp của các yếu tố trong C ++


Trong bài toán này, chúng ta được cho một số n. Nhiệm vụ của chúng tôi là in tất cả các tổ hợp các yếu tố của n.

Hãy lấy một ví dụ để hiểu rõ hơn về chủ đề -

Input: 24
Output:
2 2 2 3
2 4 3
8 3
4 6
2 12

Đối với điều này, chúng tôi sẽ sử dụng hàm đệ quy để tìm kết hợp các yếu tố của số. Và chúng tôi sẽ lưu trữ tất cả các kết hợp của chúng tôi trong một mảng của mảng.

Ví dụ

Mã này sẽ hiển thị việc triển khai giải pháp của chúng tôi.

#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;
}

Đầu ra

All Factor combinations of 24 are −
2 2 2 3
2 2 6
2 3 4
2 12
3 8
4 6