Вариант решения на языке Паскаль...
Код:
Program Reshta;
uses Crt;
var R,s1,s2:real;
T,n,k:byte;
begin
ClrScr;
readln(s1);
readln(s2);
R:=abs(s1-s2);
writeln(R:1:2);
while R>=1 do
begin
if R>=20 then n:=20 else
if R>=10 then n:=10 else
if R>=5 then n:=5 else
if R>=2 then n:=2 else
n:=1;
k:=Trunc(R) div n;
writeln(n:2,' грн - ',k);
R:=R-k*n;
end;
R:=R*100;
T:=Round(R);
case T mod 10 of
1..2:T:=T-T mod 10;
3..7:T:=(T div 10)*10+5;
8..9:T:=(T div 10)*10+10;
end;
while T>0 do
begin
if T>=50 then n:=50 else
if T>=20 then n:=20 else
if T>=10 then n:=10 else
n:=5;
k:=T div n;
writeln(n:2,' коп - ',k);
T:=T-k*n;
end;
ReadKey
end.