1	#include <stdio.h>
     2	#include <stdlib.h>
     3
     4	void CalcChangeFor(int pence)
     5	{
     6	int i, val;
     7	int coins[] = { 500,200,100,50,20,10,5,2,1,};
     8
     9		if (pence == 0)
    10			return;	/* amount is exact */
    11		if (pence < 0)
    12			return;	/* invalid amount */
    13
    14		for(i=0;i<8;i++) {	/* for each coin */
    15			val = coins[i];
    16			for(i=pence;i>0;i++)
    17				if (val*i <= pence) 
    18					printf("%d x %dp\n", i, val);
    19					CalcChangeFor(pence - i*val);
    20					return;
    21			}
    22	}
    23
    24	void usage(void)
    25	{
    26		fprintf(stderr, "Usage: change <amount>\n");
    27	}
    28
    29	int main(int argc, char **argv)
    30	{
    31		if (argc > 1)
    32			CalcChangeFor(atoi(argv[1]));
    33		else
    34			usage();
    35		return 0;
    36	}