#include <stdio.h>
#include <stdlib.h>

void CalcChangeFor(int pence)
{
int i, j, val;
int coins[] = { 500,200,100,50,20,10,5,2,1,};

if (pence == 0)
return;	/* amount is exact */
if (pence < 0)
return;	/* invalid amount */

for(i=0;i<sizeof(coins)/sizeof(coins[0]);i++) {	/* for each coin */
val = coins[i];
for(j=pence;j>0;j--)
if (val*j <= pence) {
printf("%d x %dp\n", j, val);
CalcChangeFor(pence - j*val);
return;
}
}
}

void usage(void)
{
fprintf(stderr, "Usage: change <amount>\n");
}

int main(int argc, char **argv)
{
if (argc > 1)
CalcChangeFor(atoi(argv[1]));
else
usage();
return 0;
}
