Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
0 / 0 / 1
Регистрация: 04.10.2015
Сообщений: 6

Проверить, можно ли разделить монеты и купюры гонорара на две равные части?

04.10.2015, 17:57. Показов 4350. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Инопланетяне с планеты Пандора уже много лет исследуют землян. Для этого на Землю внедрено множество агентов-пандорианцев. Так как среднестатический пандорианец примерно в 20 раз меньше среднестатичестического землянина, для перемещения по планете они используют специальных роботов, внешне неотличимых от жителей Земли. Внутри этих роботов с комфортом располагается команда агентов-исследователей.

Сегодня команда, управляющая роботом «Геннадий», получает свой гонорар. Команда состоит из двух пандорианцев, Джейка и Джейка, которые в данный момент исследуют жителей России. Гонорар исследователи получают один на двоих наличными в обыкновенном российском банке.

Джейк и Джейк должны получить сегодня K рублей. Смогут ли они разделить полученные монеты и купюры на двоих так, чтобы гонорар оказался поделен поровну, вне зависимости от того, какими именно монетами и купюрами им решат выдать K рублей в банке?

Напишите программу, которая поможет Джейку и Джейку ответить на этот вопрос.

Входные данные
На вход подается число K — сумма, которую получат Джейк и Джейк ( 1 ≤ K ≤ 100 000 ).

Выходные данные
Выведите «YES», если вне зависимости от того, какими именно монетами и купюрами будет выдана нужная сумма, их можно будет поделить поровну, и «NO» — в противном случае. Действие происходит в России, поэтому для выдачи нужной суммы могут быть использованы купюры и монеты следующих номиналов: 1 , 2 , 5 , 10 , 50 , 100 , 500 , 1000 и 5000 рублей.
________________________________________ ________________________________________ _______________________
на тесте неправильные ответы при К>=10000, помогите найти ошибку

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function p(k:integer):boolean;
begin
if (k mod 2 =0) and ((k div 2) mod 2=0) and ((k div 5) mod 2=0) and ((k div 10) mod 2=0) and ((k div 50) mod 2=0) and ((k div 100) mod 2=0) and ((k div 500) mod 2=0) and ((k div 1000) mod 2=0) and ((k div 5000) mod 2=0)
then p:=true else p:=false;
end;
var k:integer;
begin
assign(input,'input.txt'); reset(input);
assign(output,'output.txt'); rewrite(output);
read(input,k);
if p(k) then write(output,'YES')
else write(output,'NO');
close(input);
close(output);
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.10.2015, 17:57
Ответы с готовыми решениями:

Дана строка. Необходимо разделить ее на две равные части
Дана строка. Необходимо разделить ее на две равные части (если длина строки — четная, а если длина строки нечетная, то длина первой части...

Разделить массив на две равные части, суммы элементов которых наиболее близки к равности
Мне нужно разделить массив на две равные части, суммы элементов которых наиболее близки к равности. Как разделить массив по на две части я...

Можно ли разделить квадрат на 2 равные части чтобы все точки находящиеся на нем были по одну сторону квадрата?
На квадратном торте N свечей. Можно ли одним прямолинейным разрезом разделить его на две равные по площади части, одна из которых не...

13
CAPITAL OF ROCK!
 Аватар для JokeR.BY
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
04.10.2015, 18:05
Цитата Сообщение от derp Посмотреть сообщение
Pascal
1
if (k mod 2 =0) and ((k div 2) mod 2=0) and ((k div 5) mod 2=0) and ((k div 10) mod 2=0) and ((k div 50) mod 2=0) and ((k div 100) mod 2=0) and ((k div 500) mod 2=0) and ((k div 1000) mod 2=0) and ((k div 5000) mod 2=0) then p:=true else p:=false;
Pascal
1
p := (k mod 2 =0) and ((k div 2) mod 2=0) and ((k div 5) mod 2=0) and ((k div 10) mod 2=0) and ((k div 50) mod 2=0) and ((k div 100) mod 2=0) and ((k div 500) mod 2=0) and ((k div 1000) mod 2=0) and ((k div 5000) mod 2=0);
Добавлено через 17 секунд

Не по теме:

не решение проблемы, лишь маленькое замечание.

0
0 / 0 / 1
Регистрация: 04.10.2015
Сообщений: 6
04.10.2015, 18:12  [ТС]
ошибки на тех же тестах
0
CAPITAL OF ROCK!
 Аватар для JokeR.BY
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
04.10.2015, 18:15
и в Integer не влезет 100 000

Добавлено через 2 минуты
так. задание: определить, получатся ли две одинаковые по купюрам и номиналу кучки, которые в сумме дадут K?
0
0 / 0 / 1
Регистрация: 04.10.2015
Сообщений: 6
04.10.2015, 18:17  [ТС]
в ABC pascal помещается
_______
получается, что так
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
04.10.2015, 18:19
А где в теме указано, что нужно использовать ABC? Почему тема сразу не была создана в соответствующем разделе?
0
0 / 0 / 0
Регистрация: 15.01.2018
Сообщений: 1
15.01.2018, 23:13
Спасибо!
0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
16.01.2018, 07:59
Мутная какая-то задача. Сдаётся мне, что не всё так просто в этой жизни. Слишком уж примитивно решение. А если, скажем, выдали 1, 2, 2 и 5 рублей, что, сумму поделить поровну невозможно?
В задаче ведь говорится: чтобы гонорар оказался поделен поровну. Ну, вот гонорар 10 рублей, он делится пополам, а условию не удовлетворяет...

Хотя, если с детского сайта взята, то может быть и так...
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
16.01.2018, 09:28
Цитата Сообщение от JokeR.BY Посмотреть сообщение
задание: определить, получатся ли две одинаковые по купюрам и номиналу кучки, которые в сумме дадут K?
Это более строгое условие, чем в задаче.
Задача по факту обратна такой: можно ли выдать К рублей так, что их невозможно разделить поровну на 2.
Цитата Сообщение от кот Бегемот Посмотреть сообщение
В задаче ведь говорится: чтобы гонорар оказался поделен поровну. Ну, вот гонорар 10 рублей, он делится пополам, а условию не удовлетворяет...
Этот гонорар может быть выдан купюрой в 10 руб. -- никак не поделить на двоих. А все из-за того, что
Цитата Сообщение от derp Посмотреть сообщение
Смогут ли они разделить полученные монеты и купюры на двоих так, чтобы гонорар оказался поделен поровну, вне зависимости от того, какими именно монетами и купюрами им решат выдать K рублей в банке?
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
16.01.2018, 09:36
Это задача отборочного этапа Московской олимпиады по информатике для 6-9 классов, 2018 год
Срок проведения отборочного этапа: с 11.12.2017 по 11.02.2018.
0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
16.01.2018, 17:56
Цитата Сообщение от bormant Посмотреть сообщение
Это более строгое условие, чем в задаче.
Чего же тут строгого, если решение становится примитивным: просто проверить, все ли номиналы чётные.
А вот если дано 100,100,100,100,100,50,10,10,10, 10, 10, 10, 5,2,2,2,1 - попробуй тут разберись, можно разложить на две одинаковые суммы?
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
17.01.2018, 14:37
Цитата Сообщение от кот Бегемот Посмотреть сообщение
Чего же тут строгого, если решение становится примитивным: просто проверить, все ли номиналы чётные.
Прежде чем продать что-то ненужное, надо сперва купить что-то ненужное...
Нет номиналов, есть сумма. Если эту сумму можно выдать такими номиналами, что на двоих не поделить поровну, то NO, иначе YES.
Вот сумма 10, ее можно выдать как 5+5, но это не имеет значения, поскольку можно выдать 10 или 2+2+2+2+2 -- достаточно единственного разложения на монеты/купюры, которые не поделить так, чтобы половинки были равны, и все, NO.
0
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
17.01.2018, 15:24
del
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
17.01.2018, 15:30
Цитата Сообщение от кот Бегемот Посмотреть сообщение
нечётное число вообще поделить пополам нельзя
Сразу NO.
Цитата Сообщение от кот Бегемот Посмотреть сообщение
а чётное всегда представимо в виде либо (2k+1)*2 (к примеру 10=2+2+2+2+2), либо в виде (2k+1)*2+1+1 (к примеру 12=2+2+2+2+2+1+1
Не важно, что у четного числа есть "хорошее" представление. Главное, чтобы не было "плохого" (все возможные представления были хорошими).

Добавлено через 2 минуты
5000: 5000 -> NO
5002: 5000+2 -> NO
9998: 5000+... -> NO
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.01.2018, 15:30
Помогаю со студенческими работами здесь

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

Разделить картинку на равные части
Доброго всем суток! Помогите разделить изображение 100х100 на кусочки 10х10. Я загружаю картинку из выбранной папки в PictureBox на...

Разделить div на 3 равные части
Приветствую. Интересоваться вёрсткой начал около 2-ух недель назад. Пока-что всё получается, за исключение одного — правильно разделить...

Разделить GridLayout на равные части
Как разделить GridLayout на 2х2, чтобы компоненты, которые лежат в ячейках имели размер 1/2 высоты и 1/2 ширины Layout, (если просто...

Разделить список на равные части, сохранив порядок
У меня есть отсортированный по возрастанию список, например Нужно узнать, возможно ли разделить его на 5 равных частей, в каждой...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
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 На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru