1. C, Axel Fiedler

/*
* ACM Programming Contest
*
* Problem: 147 - Dollars
* Status: Accepted
* Language: C
* Runtime: 0.012
* Date: 2009-06-01 13:13:08
* Author: Axel Fiedler
*
*/
#include <stdio.h>
#include <math.h>

#define NOTES_AND_COINS 11
#define OPTIONS 6001

int money[NOTES_AND_COINS] = {1, 2, 4, 10, 20, 40, 100, 200, 400, 1000, 2000};
unsigned long long res[OPTIONS];

int main()
{
int i, j, c;
float f;

res[0] = 1;

for (i = 0; i < NOTES_AND_COINS; i++)
{
c = money[i];

for (j = c; j < OPTIONS; j++)
res[j] += res[j - c];
}

while (scanf("%f", &f) && (f != 0.0f))
{
printf("%6.2f%17llu\n", f, res[((int)ceil(f*100)/5)]);
}

return 0;
}