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

Как наименьшим количеством монет можно выплатить N копеек?Предполагается,что в достаточном количестве имеются монеты достоинством 1,2.3.5.10,15,20,50

06.02.2013, 18:41. Показов 5108. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано натуральное число N.Как наименьшим количеством монет можно выплатить N копеек?Предполагается,что в достаточном количестве имеются монеты достоинством 1,2.3.5.10,15,20,50 копеек.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.02.2013, 18:41
Ответы с готовыми решениями:

Как наименьшим количеством монет можно выплатить N копеек
Дано натуральное число N. Как наименьшим количеством монет можно выплатить N копеек?...

Как наименьшим количеством купюр можно выплатить сумму n?
В некоторой стране используются денежные купюры достоинством в 1, 2, 4, 8, 16, 32 и 64 денежные...

Как наименьшим количеством денежных купюр можно выплатить сумму N
1)В некоторой стране используются денежные купюры достоинством в 1, 2, 5, 10, 20, 50. Дано...

Как наименьшим количеством купюр можно выплатить денежную сумму x
надо ввести натуральное число x , и каким наименьшим количеством купюр можно выплатить денежную...

9
13100 / 5881 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
06.02.2013, 18:55 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
27
28
29
30
31
32
33
34
35
36
37
program Project1;
 
const
  M = 8;
  ArrCurr : array[1..M] of Integer = (50, 20, 15, 10, 5, 3, 2, 1);
var
  ArrCnt : array[1..M] of Integer;
  i, Sum, Cnt : Integer;
  S : String;
begin
  repeat
    Writeln('Задайте требуемую денежную сумму в копейках:');
    Readln(Sum);
    
    {Решение.}
    Cnt := 0;
    for i := 1 to M do begin
      ArrCnt[i] := Sum div ArrCurr[i];
      Sum := Sum mod ArrCurr[i];
      Inc(Cnt, ArrCnt[i]); {Cnt := Cnt + ArrCnt[i];}
    end;
    
    {Ответ.}
    if Cnt = 0 then
      Writeln('Ни один вид монет не потребовался.')
    else begin
      Writeln('Всего потребовалось монет: ', Cnt);
      Writeln('Сумма набрана таким образом:');
      for i := 1 to M do
        if ArrCnt[i] > 0 then
          Writeln(ArrCnt[i], ' монет достоинством в ', ArrCurr[i], ' коп.');
    end;
    
    Writeln('Повторить - Enter. Выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.
3
0 / 0 / 0
Регистрация: 17.01.2013
Сообщений: 19
06.02.2013, 19:53  [ТС] 3
что такое ArrCurr и ArrCnt?
0
13100 / 5881 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
06.02.2013, 20:17 4
ArrCurr - это массив денежных номиналов, которые есть в наличии:
Pascal
1
ArrCurr : array[1..M] of Integer = (50, 20, 15, 10, 5, 3, 2, 1);
Т. е., у нас есть в распоряжении монеты достоинством в 50, 20, 15, 10, 5, 3, 2, 1 копеек.
ArrCnt - в этот массив мы записываем количество монет по каждому номиналу. Например, если у нас после вычислений получилось, что ArrCnt[1] = 3, то это означает, что при наборе требуемой денежной суммы мы использовали (ArrCnt[1] = 3) монеты достоинством в (ArrCurr[1] = 50) копеек.
1
0 / 0 / 0
Регистрация: 17.01.2013
Сообщений: 19
12.02.2013, 17:58  [ТС] 5
а ты не мог бы алгоритм (схему) составить?
0
0 / 0 / 0
Регистрация: 05.04.2015
Сообщений: 2
21.02.2017, 14:24 6
роботает неверно.

если поставить массив {500,200,100,50,20,10,5,2,1}; например, и сумму выбрать 500, то вместо 1, будет выводить 3.
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
21.02.2017, 14:34 7
Не врите.
Если переделать на
Pascal
1
2
3
const
  M = 9;
  ArrCurr : array[1..M] of Integer = (500,200,100,50,20,10,5,2,1);
и ввести 500 ответ 1.
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
21.02.2017, 14:51 8
Вот пример.
Вложения
Тип файла: rar Doc1.rar (410.5 Кб, 7 просмотров)
0
Модератор
Эксперт по электронике
8380 / 4262 / 1618
Регистрация: 01.02.2015
Сообщений: 13,263
Записей в блоге: 5
22.02.2017, 22:04 9
А для
Pascal
1
2
3
const
  M = 7;
  ArrCurr : array[1..M] of Integer = (50, 20, 15, 10, 3, 2, 1);
и Sum=25
Код
Задайте требуемую денежную сумму в копейках:
25
Всего потребовалось монет: 3
Сумма набрана таким образом:
1 монет достоинством в 20 коп.
1 монет достоинством в 3 коп.
1 монет достоинством в 2 коп.
Может быть заменить перебором?
0
Модератор
9719 / 5057 / 3285
Регистрация: 17.08.2012
Сообщений: 15,601
27.02.2017, 00:50 10
Надо бы, поскольку очевидно, что результат выдаётся неверный, нужно всего две монеты, 15 и 10 копеек.
0
27.02.2017, 00:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2017, 00:50
Помогаю со студенческими работами здесь

Каким наименьшим количеством денег можно выплатить указанную сумму
В некотором государстве пользуются деньгами номиналом 1, 2, 4, 8, 16, 32 и 64. Каким наименьшим...

Каким наименьшим количеством денег можно выплатить указанную сумму
Помогите, пожалуйста, решить: У деякій державі користуються грішми з номіналами 1, 2, 4, 8, 16, 32...

Определить, каким наименьшим количеством денежных купюр можно выплатить сумму N
В некоторой стране используются денежные купюры достоинством в 1,2,4,8,16,32 и 64.дано натуральное...

Определить, каким наименьшим количеством денежных купюр можно выплатить сумму N
В некоторой стране используются денежные купюры достоинством в 1, 2, 4, 8, 16, 32 и 64. Дано...


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

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

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