Ejemplo n.º 1
0
void partitionIncreasing(int value)
{
  int arr[MAXLENGTH] = {0}; //Make array values all 0

  printf("partitionIncreasing %d\n", value);

  partInc(value, arr, 0, 1); //Initial index is 0 and initial starting point is 1
}
Ejemplo n.º 2
0
void partitionIncreasing(int value)
{
  int ind = 0;
  
  printf("partitionIncreasing %d\n", value);
  void partInc( int value, int * arr, int ind);
  
  int * arr = malloc(value * sizeof(int));
  partInc(value, arr, ind);
  free(arr);
  
}
Ejemplo n.º 3
0
void partInc(int value, int * arr, int ind, int start)
{
  int i;

  if(value == 0)
  {
    printArray(arr, ind);
    return;
  }

  //Start at 1 initially since it is the lowest number
  for(i = start; i <= value; i++)
  {
    arr[ind] = i;

    partInc(value - i, arr, ind + 1, i + 1);
  }
}
Ejemplo n.º 4
0
void partInc(int value, int * arr, int ind)
{
  int n = 0;
  
  if (value == 0)
  {
    printpart(arr, ind);
    return;
  }
  
  for (n = 1; n <= value; n++)
  {
    arr[ind] = n;
    //if (ind == 0)
    //{
    //  partInc(value - n, arr, ind + 1);
    //}
    if ( arr[ind] > arr[ind - 1])
    {
      arr[ind] = n;
      partInc(value - n, arr, ind + 1);
    }
  }
}
Ejemplo n.º 5
0
void partitionIncreasing(int value)
{
    int *result = malloc(sizeof(int) * (value / 2 + 2));
    partInc(result, value);
    free(result);
}