![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Guest |
![]()
Сообщение
#1
|
Гость ![]() |
Привет всем.
Задали нарисовать блок-схему по задаче, задача такая Любую сумму денег больше 7 рублей можно разменять на 3 и 5 рублей Разменяйте N рублей всевозможными способами. |
Guest |
![]()
Сообщение
#2
|
Гость ![]() |
Помогите тогда решить задачу. :molitva:
|
Malice |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Если тебе нужны ВСЕ способы размена, то делай полный перебор, так проще, т.е:
for n5:=0 to (Сумма div 5) do
for n3:=0 to (Сумма div 3) do
if (n5*5+n3*3)=сумма then writeln (......);
:yes: |
Guest |
![]()
Сообщение
#4
|
Гость ![]() |
Malice
Спасибо |
klem4 |
![]()
Сообщение
#5
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Мне кажется перебор это очень долго .... у меня вот есть другая мысль, работает вроде правильно, только запарка с числом 9
![]() (n div 3 +1)*(n div 5 + 1) операций, тоесть в случае например с n=1000 это будет 334*201 = 67134 ![]() в моем случае n div 5 -> 200 ![]()
uses crt;
var
n, c5 : integer;
Begin
clrscr;
write('n='); readln(n);
c5 := 0;
while(n>0) do begin
dec(n, 5);
inc(c5);
if n mod 3 = 0 then
writeln('5*', c5, ' + 3*', n div 3);
end;
readln;
end.
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Malice |
![]()
Сообщение
#6
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(klem4 @ 4.09.05 22:15) Мне кажется перебор это очень долго .... (n div 3 +1)*(n div 5 + 1) операций, тоесть в случае например с n=1000 это будет 334*201 = 67134 ![]() во 1-х, я сказал как проще ![]() ![]() |
hiv |
![]()
Сообщение
#7
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 660 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Можно и одним циклом в тупом переборе обойтись:
var n5,n :integer;
begin
n:=111;
for n5:=0 to (n div 5) do
if ((n-n5*5) mod 3)=0 then
writeln(n:0,'=',n5:0,'*5p+',((n-n5*5) div 3):0,'*3p');
end.
Работает железно! ![]() -------------------- Никогда не жадничай. Свои проблемы с любовью дари людям!
|
![]() ![]() |
![]() |
Текстовая версия | 15.04.2025 11:41 |