C ++ Новичок нуждается в помощи для печати комбинаций целых чисел

Предположим, мне дано:

Диапазон целых чиселiRange (т.е. из1 вплоть доiRange) а такжеЖелаемое количество комбинаций

Я хочу найти количество всех возможных комбинаций и распечатать все эти комбинации.

Например:

Дано: iRange = 5 а такжеn = 3

Тогда количество комбинацийiRange! / ((iRange!-n!)*n!) = 5! / (5-3)! * 3! = 10 комбинации, и на выходе получается:

123 - 124 - 125 - 134 - 135 - 145 - 234 - 235 - 245 - 345

Другой пример:

Дано: iRange = 4 а такжеn = 2

Тогда количество комбинацийiRange! / ((iRange!-n!)*n!) = 4! / (4-2)! * 2! = 6 комбинации, и на выходе получается:

12 - 13 - 14 - 23 - 24 - 34

Моя попытка до сих пор:

#include <iostream>
using namespace std;

int iRange= 0;
int iN=0;

int fact(int n)
{
    if ( n<1)
        return 1;
    else
    return fact(n-1)*n;
}

void print_combinations(int n, int iMxM)
{
    int iBigSetFact=fact(iMxM);
    int iDiffFact=fact(iMxM-n);
    int iSmallSetFact=fact(n);
    int iNoTotComb = (iBigSetFact/(iDiffFact*iSmallSetFact));
    cout<<"The number of possible combinations is: "<<iNoTotComb<<endl;
    cout<<" and these combinations are the following: "<<endl;


    int i, j, k;
    for (i = 0; i < iMxM - 1; i++)
    {
        for (j = i + 1; j < iMxM ; j++)
        {
            //for (k = j + 1; k < iMxM; k++)
                cout<<i+1<<j+1<<endl;
        }
    }
}

int main()
{
    cout<<"Please give the range (max) within which the combinations are to be found: "<<endl;
    cin>>iRange;
    cout<<"Please give the desired number of combinations: "<<endl; 
    cin>>iN;
    print_combinations(iN,iRange);
    return 0;   
}

Моя проблема: Часть моего кода, связанная с печатью комбинаций, работает только дляn = 2, iRange = 4 и я не могу заставить его работать вообще, то есть для любогоn а такжеiRange.

Ответы на вопрос(5)

Ваш ответ на вопрос