codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <stdio.h> #include <stdlib.h> #define N 100 #define ARRAY_MAX 26 typedef struct tag_data { int array[ARRAY_MAX]; int n; struct tag_data * next; } DATA; DATA data[N] = {{{0}}}; void init() { int i, j; for (i=0; i<N; i++) for (j=0; j<ARRAY_MAX; j++) data[i].array[j] = j; for (i=0; i<N-1; i++) data[i].next = &data[i + 1]; data[i].next = NULL; } void roll(int * array) { int i, k; for (i=0; i<ARRAY_MAX-1; i++) { k = array[i]; array[i] = array[i + 1]; array[i + 1] = k; } } void encode(int * value, DATA * temp) { DATA * node; if (temp == NULL) return; for (node = temp; node != NULL; node = node->next) *value ^= node->array[0]; temp->n++; roll (temp->array); if (temp->n == ARRAY_MAX) { temp->n = 0; encode (value, temp->next); } return; } int main(int argc, char *argv[]) { int value = 123; init(); while (data[N-1].n != ARRAY_MAX-1) encode (&value, &data[0]); printf("%d\n", value); return 0; }
Private
[
?
]
Run code
Submit