Actually it was one of the assignments given to me in lab.. here is the code

#include <iostream.h>

#include <conio.h>

using namespace std;

int a[20][20][20]; // Global declration to make every cell's default value 
to zero

// 3D matrix to implement the algorithm

void combinations(int number) // function that accepts the number whose 
combination , you

{

int i, j, k, larg, m, n, flag;

for(i=1; i<=number; i++)

a[i][0][0]=i;

i=1;

while(i<=number)

{

// first row of each number is copied by that number

// external loop to access no. whose combination are inserted

flag=1;

j=1;

do{

//position of rows that is being modified

// inner loop that will run through i

for(k=0; a[j][k][0]!=0; k++) // innermost loop that will check for 
largest/last no.

{

for(larg=0; a[j][k][larg]!=0; larg++); //to check last value

larg--;

if(i-j>a[j][k][larg])

{

for(m=0; m<=larg; m++)

a[i][flag][m] = a[j][k][m];

a[i][flag][m] = i-j;

flag++;

}

// comapring last value with difference

// copy all existing values to current number

// insert difference between numbers

//increase the pointer to insert next combination

}

j++;

}while(j<=i);

i++;

}

k=number;

for(i=0; a[k][i][0]!=0; i++) {

cout<<a[k][i][0];

for(j=1; a[k][i][j]!=0; j++)

cout<<"+"<<a[k][i][j];

// printing of all combination of number

cout<<"\n";

}

}

int main()

{

int number;

cout<<"Enter the natural number: ";

cin>>number;

combinations(number);

getch();

return 0;

}

//input the number whose combination you want

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/algogeeks/-/CsTCslXuC88J.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to