Другие языки программирования и технологии

кто знает Паскаль помогите написать програмку

Имеется некоторая сумма денег S, найти число вариантов размена этой суммы монетами достоинства: 1, 5, 10, 50 копеек.
Www. Cityperm
Www. Cityperm
1 115
Хм.. . если я правильно понял условие, то нечто вроде:

program money;
uses crt;
var S: integer;

Function R1 (n: integer): integer;
begin
R1 := 1;
end;

Function R5 (n: integer): integer;
begin
if n < 5 then
R5 := 0
else
R5 := R1 (n - 5) + R5 (n - 5);
end;

Function R10 (n: integer): integer;
begin
if n < 10 then
R10 := 0
else
R10 := R5 (n - 10) + R10 (n - 10);
end;

Function R50 (n: integer): integer;
begin
if n < 50 then
R50 := 0
else
R50 := R10 (n - 50) + R50 (n - 50);
end;

begin
clrscr;
write ('введите сумму: ');
readln (S);
writeln (R1(S) + R5(S) + R10(S) + R50(S), ' вариантов');
readkey;
end.

не уверен правда, что это работает - паскаля под рукой нет.
Kirill Koroliev
Kirill Koroliev
5 854
Лучший ответ
видимо условие задачи не корректно написано т. к. любую сумму можно разменять монетами достоинством 1 коп. , кратную пяти можно разменять копейками, пятаками и т. д. Вариантов размена будет множество
вот если написать в условии задачи, что размен монеты производится самыми крупными из возможных, тогда можно написать соответствующий код.
Дима Дима
Дима Дима
6 257
хе хе, одного знания паскаля мало, тут какая то теория особая, можно например тысяча одних монет миллион других и третьи х не сколько итд там ваще компинаций очень много, если по одному виду монет разменивать то так примерно

program money (input,output);
uses crt;
var a,b: real;
begin
clrscr;
writeln ('введите сумму');
readln (a);
writeln ('введите достоинство монет');
readln (b);
writeln ('разменяется на', a/b:5:2, 'монет');
readkey;
end;

Но в вашем случае программа реально не программирования больше а математики и логики