![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
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.
Работает железно! ![]() -------------------- Никогда не жадничай. Свои проблемы с любовью дари людям!
|
![]() ![]() |
![]() |
Текстовая версия | 25.07.2025 11:56 |