1.

/**
* FWP, Ausgewählte Probleme aus dem ACM Programming Contest, WS09
* Problem: 147 - Dollars
* Link: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&page=show_problem&problem=83
*
* @author Stefan Gohlke
* @version 1.0, 11/25/2009
*
* Method : Ad-Hoc
* Status : Accepted
* Runtime: 1.428
*/

import java.util.Scanner;

public class Main {

public static void main(String[] args) {
dollars();
}

public static void dollars()
{
Scanner scanner = new Scanner(System.in);

boolean eingabeOffen = true;
long wechselmoeg[] = new long[30001];
int anzahlmuenzen = 11;

int[] coins = new int[anzahlmuenzen]; //$100, $50, $20, $10, and $5 notes and $2, $1, 50c, 20c, 10c and 5c
coins[10] = 10000;
coins[9] = 5000;
coins[8] = 2000;
coins[7] = 1000;
coins[6] = 500;
coins[5] = 200;
coins[4] = 100;
coins[3] = 50;
coins[2] = 20;
coins[1] = 10;
coins[0] = 5;

int coin;
wechselmoeg[0] = 1;

for(int i=0; i < anzahlmuenzen; i++)
{
coin= coins[i];
for (int j = coin; j<= 30000; j++)
{
wechselmoeg[j] += wechselmoeg[j-coin];
}
}
String zwischenspeicher;
int zwischenInt = 0;

while (eingabeOffen)
{
zwischenspeicher = scanner.next();
zwischenInt = Integer.parseInt(zwischenspeicher.substring(0, zwischenspeicher.indexOf("." )) + zwischenspeicher.substring(zwischenspeicher.indexOf("." )+1));
if (zwischenInt == 0) eingabeOffen = false;
else {
System.out.printf("%6.2f %16d%n", Double.parseDouble(zwischenspeicher), wechselmoeg[zwischenInt]);
}
}
}
}