fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. void printCombination(const std::vector<int>& combination) {
  5. if (combination.size() > 1) { // Cetak hanya kombinasi yang terdiri dari lebih dari 1 angka
  6. std::cout << combination.size() << " ";
  7. for (int num : combination) {
  8. std::cout << num << " ";
  9. }
  10. std::cout << std::endl;
  11. }
  12. }
  13.  
  14. void generateCombinations(int start, int end, std::vector<int>& combination) {
  15. // Cetak kombinasi saat ini jika ukurannya lebih dari 1
  16. if (combination.size() > 1) {
  17. printCombination(combination);
  18. }
  19.  
  20. // Mulai dari angka berikutnya setelah `start` untuk menghindari pengulangan
  21. for (int i = start; i <= end; ++i) {
  22. // Tambahkan angka saat ini ke kombinasi
  23. combination.push_back(i);
  24.  
  25. // Lakukan rekursi untuk menambahkan angka berikutnya
  26. generateCombinations(i + 1, end, combination);
  27.  
  28. // Hapus angka terakhir untuk mencoba angka lain
  29. combination.pop_back();
  30. }
  31. }
  32.  
  33. int main() {
  34. std::vector<int> combination;
  35. generateCombinations(1, 5, combination);
  36. return 0;
  37. }
  38.  
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
2 1 2 
3 1 2 3 
4 1 2 3 4 
5 1 2 3 4 5 
4 1 2 3 5 
3 1 2 4 
4 1 2 4 5 
3 1 2 5 
2 1 3 
3 1 3 4 
4 1 3 4 5 
3 1 3 5 
2 1 4 
3 1 4 5 
2 1 5 
2 2 3 
3 2 3 4 
4 2 3 4 5 
3 2 3 5 
2 2 4 
3 2 4 5 
2 2 5 
2 3 4 
3 3 4 5 
2 3 5 
2 4 5