1
2
3
4
5
6
7
8
9
10
11
12
13
14class WechselGeld {
15
16 public static
17 void main( String[] args ) {
18
19 int[] Pfennige = {
20 1, 2, 5,
21 10, 50,
22 100, 200, 500,
23 1000, 2000, 5000,
24 10000, 20000, 50000,
25 100000
26 };
27
28 GeldWechsler pf = new GeldWechsler(Pfennige);
29
30 int n = 1;
31 int res;
32
33 try {
34 n = Integer.valueOf(args[0]).intValue();
35 } catch (Exception e) {}
36
37 res = pf.wechseln(n);
38
39 System.out.println
40 ( "Geld wechseln\n\n" +
41 n +
42 " Pf. " +
43 ( n==1 ? "kann" : "koennen") +
44 " auf " +
45 res +
46 " Art" +
47 ( res==1 ? "" : "en" ) +
48 " gewechselt werden");
49 }
50}
51
52
53
54
55
56
57
58
59class GeldWechsler {
60
61 int[] muenzen;
62
63
64
65 GeldWechsler(int[] muenzen) {
66 this.muenzen = muenzen;
67 }
68
69
70
71
72
73
74
75
76
77
78 protected
79 int wechseln(int betrag,
80 int muenzarten) {
81 return
82 ( betrag == 0 )
83 ? 1
84 : (
85 ( (betrag < 0) || (muenzarten < 0) )
86 ? 0
87 : ( wechseln( betrag - muenzen[muenzarten],
88 muenzarten)
89 +
90 wechseln( betrag,
91 muenzarten - 1) ));
92 }
93
94
95
96
97
98
99
100 public
101 int wechseln(int betrag) {
102 return
103 wechseln( betrag,
104 muenzen.length -1);
105 }
106}
107
108