All pastes #204033 Raw Edit

Something

public c v1 · immutable
#204033 ·published 2006-10-15 16:29 UTC
rendered paste body
#include <stdio.h>#include <stdlib.h>#include <string.h>void print_arr(const char *arr, int size){    int i;    for(i = 0; i < size; i++)        printf("%c", arr[i]);    puts("");}int factorial(int n){    if(n <= 1)        return 1;    else        return n * factorial(n-1);}char *permutation(const char *arr, int size, int num){    char *arr2 = calloc(sizeof(char), size);    arr2 = memcpy(arr2, arr, size*sizeof(char));    int factor = 1;    int i = 2;    for(; i <= size; i++)    {        factor *= i-1;        int f_index = (i - ((num / factor) % i)) - 1;        int adjusted_index = i-1;        int temp = arr2[f_index];        arr2[f_index] = arr2[adjusted_index];        arr2[adjusted_index] = temp;    }    return arr2;}int main(){    int factor = factorial(size);    char arr[] = "cookie";    int size = strlen(arr);    int i = 0;    for(i = 0; i < factor; i++)    {        char *arr2 = permutation(arr, size, i);        print_arr(arr2, size);        free(arr2);    }    return 0;}