Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 26.09.2022
Сообщений: 23

Наименьшее количество банкнот, которые нужны, чтобы дать сумму N

13.04.2023, 14:10. Показов 1420. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В валютной системе есть банкноты шести номиналов: 1, 2, 5, 10, 50, 100. Напишите
программу, которая определяет наименьшее количество банкнот, которые нужны, чтобы
дать сумму N.


Первый вопрос: правильный ли код?
Второй: как исправить ошибку ZeroDivisionError: integer division or modulo by zero





Python
1
2
3
4
5
6
7
8
9
10
a=100
s=int(input())
for i in range (1,9):
    n=s//a
    s=s%a
    if i % 2==1:
        a=a//5
    else:
        a=a//2
print(n)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.04.2023, 14:10
Ответы с готовыми решениями:

Дана некоторая сумма денег. Разменять эту сумму банкнотами 1, 3, 5, 10, 20 так, чтобы количество банкнот было минимальным.
Дана некоторая сумма денег. Разменять эту сумму банкнотами 1, 3, 5, 10, 20 так, чтобы количество банкнот было минимальным.

Конвертировать сумму в минимальное количество банкнот
Кто может помоч? Спасибо заранее. П.С Обычная школьная задача я сам учусь в школе :) Задача : Даётся денежная сума.конвертировать сумму...

Написать программу CIPHER, которая определяет наименьшее количество символов, которые нужно вычеркнуть, чтобы расшифровать строку
Некоторое сообщение шифровалось следующим образом: каждое слово исходного текста переводилось с помощью словаря на специальную тайный язык,...

9
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
13.04.2023, 14:26
Цитата Сообщение от Citriniys Посмотреть сообщение
правильный ли код?
не.

Цитата Сообщение от Citriniys Посмотреть сообщение
как исправить ошибку
не делить на ноль.
1
0 / 0 / 0
Регистрация: 26.09.2022
Сообщений: 23
13.04.2023, 14:57  [ТС]
Спасибо за ответ, очень помог
0
 Аватар для rim41
1045 / 313 / 78
Регистрация: 16.03.2020
Сообщений: 954
13.04.2023, 15:59
Citriniys, Подсказка:
Python
1
2
>>> 1 // 2
0
А тут уже ищите почему у вас `a` становится 0 и как от этого уйти. Не слишком сложно, иннит?
2
97 / 47 / 6
Регистрация: 25.09.2022
Сообщений: 132
13.04.2023, 18:23
Citriniys,

Python
1
2
3
4
5
6
7
8
9
10
11
12
a = [100, 50, 10, 5, 2, 1]
n = len(a)
N = int(input())
 
r = 0
for i in range(n):
    r += N // a[i]
    N %= a[i]
    if N == 0:
        break
 
print(r)
2
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
13.04.2023, 20:10
Informatikc, не в первый раз вижу, что вы вместо прямой итерации по элементам:
Python
1
for x in a:
зачем то делаете по индексам...
1
97 / 47 / 6
Регистрация: 25.09.2022
Сообщений: 132
13.04.2023, 20:54
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var
  a: array[1..6] of integer = (100, 50, 10, 5, 2, 1);
  n, J, r, i: integer;
 
begin
  n := 6;
  readln(J);
  r := 0;
  for i := 1 to n do
  begin
    r := r + J div a[i];
    J := J mod a[i];
    if J = 0 then
      break;
  end;
  writeln(r);
end.
Red white socks, мне удобней работать на PascalABC.NET (перевожу задачи потом на Python). В Python недавно (3 месяца). Поэтому рассматриваю массив и беру индекс и работаю с ним. Всех тонкостей Python не знаю. Стараюсь освоить

Python
1
2
3
4
5
6
7
8
9
10
a = [100, 50, 10, 5, 2, 1]
n = len(a)
N = int(input())
r = 0
for x in a:
    r += N // x
    N %= x
    if N == 0:
        break
print(r)
Добавлено через 5 минут

Не по теме:

P.S. Нужна хорошая книга по Python, особенно с задачами (руку набить :) )

2
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
13.04.2023, 23:45
Первым делом про паскаль и подумал.

Не по теме:

Цитата Сообщение от Informatikc Посмотреть сообщение
P.S. Нужна хорошая книга по Python, особенно с задачами (руку набить :) )
Марк Лутц плохим советом точно быть не может

.
2
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
14.04.2023, 01:32
Цитата Сообщение от Informatikc Посмотреть сообщение
мне удобней работать на PascalABC.NET
но ведь foreach var x in a do, а еще там reduce без импорта можно использовать:
Pascal
1
2
3
## Println(Seq(100, 50, 10, 5, 2, 1)
    .Aggregate((0, ReadInteger()), (x, y) 
      -> (x[0] + x[1] div y, x[1] mod y))[0])
3
14.04.2023, 07:57

Не по теме:

Цитата Сообщение от Red white socks Посмотреть сообщение
зачем то делаете по индексам...
Цитата Сообщение от Red white socks Посмотреть сообщение
Первым делом про паскаль и подумал.
Да и не паскаль, тоже заставляет, в силу привычки, обращаться к индексам. Как видишь цикл for, рука так и тянется к ним... ведь, зачастую, в других языках, для перебора элементов предусмотрены другие циклы (типа foreach)...
Цитата Сообщение от Red white socks Посмотреть сообщение
Марк Лутц плохим советом точно быть не может
Отличный вариант, сам по ней учусь... для не новичка, многовато воды (а для совсем новичка без неё никуда), но всё просто и понятно, к тому же, есть примеры, задачи, которые можно отдельно скачать...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.04.2023, 07:57
Помогаю со студенческими работами здесь

Определить минимальное число N, чтобы при помощи новых банкнот возможно набрать любую сумму, начиная с N...
Однажды после олимпиады по экономике Мише приснился очень красочный и необычный сон. Мальчик оказался министром финансов Бебрляндии....

Определить наименьшее количество ферзей, которые можно расставить так, чтобы они держали под боем все ее свободные поля
Ребята, помогите с такой проблемкой. Нужно написать программу, которая будет определять наименьшее количество ферзей, которые можно...

Вывести номиналы банкнот, которые покупатель отдает продавцу и которые он получает в качестве сдачи.
Покупатель хочет приобрести товар стоимостью S рублей. У него есть N банкнот номиналом P1, P2, ..., PN рублей. У продавца есть M банкнот...

Дано натуральное число N. Определить количество цифр в цифровой записи данного числа, которые имеют наименьшее значение. Пример. N = 4548. Количество
помощи прошу) Дано натуральное число N. Определить количество цифр в цифровой записи данного числа, которые имеют наименьшее значение....

Найти наименьшее число элементов, которые надо удалить, чтобы осталась возрастающая последовательность
Помогите с прогой. Надо в одномерном массиве найти наименьшее число элементов,которые надо удалить,чтобы осталась возрастающая...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru