0 / 0 / 0
Регистрация: 21.07.2011
Сообщений: 7
1

Определить количество 5,20 и 50 копеечных монет, необходимое для набора суммы 4 рубля

21.07.2011, 23:49. Показов 1896. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Определить количество 5, 20 и 50 копеечных монет, необходимое для набора суммы 4 рубля. При условии, что общее количество монет должно быть равно 20.


заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.07.2011, 23:49
Ответы с готовыми решениями:

Определить, сколько существует способов набора одного рубля при помощи монет заданного достоинства
Помогите пожалуйста написать коды для след. условий: 2.Составить алгоритм, определяющий, сколько...

Определить минимальное число и номиналы банкнот и монет, необходимые для набора заданной суммы
Имеется сумма в некоторой денежной системе. Определить минимальное число и номиналы банкнот и...

Составить алгоритм, определяющий, сколько существует способов набора одного рубля при помощи монет
Составить алгоритм, определяющий, сколько существует способов набора одного рубля при помощи монет...

Найти минимальное число монет достоинством в 50, 10, 5, и 1 копейку, необходимое для представения некоторой суммы
Найти минимальное число монет достоинством в 50, 10, 5, и 1 копейку, необходимое для представения...

4
53 / 53 / 36
Регистрация: 18.02.2011
Сообщений: 146
22.07.2011, 01:17 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

как то так
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
uses crt;
var a:array[1..20] of integer;
i,n,rub,ch:integer;
begin
randomize;
clrscr;
for i:=1 to 20 do begin
n:=random(3)+2;
if (i mod n=0)  then a[i]:=50
else
if i mod 5 =0 then a[i]:=5
else
a[i]:=20;
end;
rub:=0;ch:=0;
for i:=1 to 20 do
writeln('МОНЕТА  ' ,i,'  - ',a[i]);
for i:=1 to 20 do begin
rub:=rub+a[i];
if (rub<400)  then begin inc(ch); continue; end else
if rub=400 then begin inc(ch); break; end
else if rub>400 then continue;
end;
writeln('Количество монет необходимое для набора суммы 4 рубля -> ',ch);
readkey;
end.
Добавлено через 38 минут
Немного оптимизировал
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
uses crt;
var a,b:array[1..20] of integer;
i,n,rub,ch:integer;
begin
randomize;
clrscr;
for i:=1 to 20 do begin
n:=random(4)+3;
if (i mod n=0)  then a[i]:=20
else
if i mod 5 =0 then a[i]:=5
else
a[i]:=50;
end;
rub:=0;ch:=0;
for i:=1 to 20 do
writeln('МОНЕТА  ' ,i,'  - ',a[i]);
for i:=1 to 20 do begin
rub:=rub+a[i];
if (rub<400)  then begin inc(ch);b[i]:=i; continue; end else
if rub=400 then begin inc(ch);B[i]:=i; break; end
else if rub>400 then begin rub:=rub-a[i];end;  continue;
end;
if rub<400 then writeln('Среди монет нету тех которые дали бы в сумме 4 рубля ')else
begin
writeln('Использовали монеты ');
for i:=1 to 20 do
if b[i]<>0 then
write(b[i]:3);
writeln;
writeln('Количество монет необходимых для набора 4 рублей -> ',ch);
end;
readkey;
end.
0
Путешественник вселенной
189 / 160 / 119
Регистрация: 01.03.2011
Сообщений: 664
22.07.2011, 02:11 3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Жаль но эта задача с единственным решением.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Var a,b,c,i,j,z:integer;
begin
a:=400 div 5;
b:=400 div 20;
c:=400 div 50;
for i:=a downto 1 do
begin
for j:=b downto 1 do
begin
for z:=c downto 1 do
begin
if (i*5+j*20+z*50=400) and  (i+j+z<=20)
then break;
end;
if (i*5+j*20+z*50=400) and  (i+j+z<=20)
then break;
end;
if (i*5+j*20+z*50=400) and  (i+j+z<=20)
then break ;
end;
writeln('Êîëè÷åñòâî ìîíåò 5êîï = ',i,'  Êîëè÷åñòâî ìîíåò 20êîï = ',j,' Êîëè÷åñòâî ìîíåò 50êîï = ',z);
readln;
end.
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
22.07.2011, 10:02 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Жаль но эта задача с единственным решением.
А у меня аж 7 решений.

Pascal
1
2
3
4
5
6
7
8
9
10
11
Var a,b,c,i,j,z:integer;
begin
a:=400 div 5;
b:=400 div 20;
c:=400 div 50;
for i:=0 to a do
for j:=0 to b do
for z:=0 to c do
if (i*5+j*20+z*50=400) and  (i+j+z=20)then
writeln('5коп = ',i:2,'  20коп = ',j:2,' 50коп = ',z:2);
end.
0
0 / 0 / 0
Регистрация: 21.07.2011
Сообщений: 7
22.07.2011, 20:23  [ТС] 5
Спасибо всем большое!!!
0
22.07.2011, 20:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.07.2011, 20:23
Помогаю со студенческими работами здесь

Сколько существует способов набора одного рубля при помощи монет достоинством 50коп., 20коп., 5коп. и 2коп
Составить алгоритм, определяющий, сколько существует способов набора одного рубля при помощи...

Определить количество банкнот и монет для формирования заданной суммы денег
программа читает сумму s и пару цифр после точки. определяет и выводит количество банкнот и монет....

Задана некоторая сумма в рублях, определить минимальное количество монеток для набора этой суммы
задана некоторая сумма в рублях.определить минимальное количество монеток достоинством 1, 2 и 5...

Найти количество способов составления набора монет
Малыш Петя составляет башенки из 10-ти и 20-ти копеечных монет. Сколько разных башенок он может...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru