Me piden un programa y por mas que le de doy vueltas, con tipos simples me esta costando muchisimo sacarlo.   
Escribe un programa, que podra tener los subprogramas convenientes,para determinar la n-esima forma de ordenar las fichas para hacer una suma fija. Tu programa deberia recibir un entero s(1<=s<=32) y otro n (1<=n<=231) y mostrar la n-esima forma de ordenar las fichas, en orden de diccionario, para hacer la suma s. 
Supondremos que el programa no recibira un valor de n mayor que el numero de formas de ordenar los bloques. 
por ejemplo: 
si queremos obtener 4 como valor de la suma, hay 8 maneras diferentes de disponer las fichas. 
1111 
112 
121 
13 
211 
22 
31 
4 
si s-> 4 
y n->5 
el programa devuelve : 211 
Todo ello con tipos simples (real, integer,boolean,char). 
Necesito ayuda....... 
Gracias.