The aim of this puzzle, is to print a term of the Conway sequence or Look and Say sequence. It is just a matter of string manipulation.
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
int R, L;
scanf("%d\n%d\n", &R, &L);
char line[10000];
char newline[10000];
sprintf(newline, "%d", R);
for (int i = 1; i < L; i++) {
/* copies the last known term of the sequence in 'line'
the next term will be stored into 'newline'*/
strncpy(line, newline, 10000);
char *token;
char *iter = newline;
int val = -1;
int count = 0;
/* Parses the last known term
updating the number of consecutive identical digits
and printing when the digit changes*/
token = strtok(line," ");
while (token != NULL) {
int current = atoi(token);
if (current == val)
count++;
else {
if (count != 0)
iter += sprintf(iter, "%d %d ", count, val);
val = current;
count = 1;
}
token = strtok(NULL," ");
}
sprintf(iter, "%d %d\n", count, val);
}
printf(newline);
return EXIT_SUCCESS;
}