![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
DarkWishmaster |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 168 Пол: Мужской Репутация: ![]() ![]() ![]() |
Привет.
Задача: выяснить если число может быть записано как сума из чисел 5 и 3. Например 11=5+3+3 или 16=5+5+3+3. У меня получилось если только в суме все числа 3 и одна 5 или наоборот например 11 или 23 но если 16=5+5+3+3 то тут тупик. Может у вас есть идеи, спасибо заранее. |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Может и есть... Если 5*X + 3*Y = S, то X = (S - 3*Y) / 5, где X - число пятерок, Y - число троек.
Вот и сделай цикл по Y от 0 и пока (S - 3*Y) >= 0. Если X - целое число, то ты нашел разложение суммы, если нет - проверяй следующий Y... |
DarkWishmaster |
![]()
Сообщение
#3
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 168 Пол: Мужской Репутация: ![]() ![]() ![]() |
Может и есть... Если 5*X + 3*Y = S, то X = (S - 3*Y) / 5, где X - число пятерок, Y - число троек. Вот и сделай цикл по Y от 0 и пока (S - 3*Y) >= 0. Если X - целое число, то ты нашел разложение суммы, если нет - проверяй следующий Y... на все числа TRUE; |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Я не это предлагал.
while S - 3*y >= 0 do прекрасно выдает ответ. Оптимизируешь сам... |
DarkWishmaster |
![]()
Сообщение
#5
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 168 Пол: Мужской Репутация: ![]() ![]() ![]() |
Я не это предлагал. while S - 3*y >= 0 do прекрасно выдает ответ. Оптимизируешь сам... Спасибо большое! Только вот из за exit; он выходит из цикла и ничего не выдает на экран. Сообщение отредактировано: DarkWishmaster - 23.01.2011 16:57 |
мисс_граффити |
![]()
Сообщение
#6
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
так надо разложить или просто написать, возможно/невозможно?
разложений же может быть несколько. тогда - какое из них выводить? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Цитата Только вот из за exit; он выходит из цикла и ничего не выдает на экран. Только вот ПЕРЕД Exit он выдает найденное разложение. Если совсем ничего не написал - значит, не нашел. |
DarkWishmaster |
![]()
Сообщение
#8
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 168 Пол: Мужской Репутация: ![]() ![]() ![]() |
так надо разложить или просто написать, возможно/невозможно? разложений же может быть несколько. тогда - какое из них выводить? Надо просто написать если это возможно, но принцип тот же. Так в тот то и дело что число можно разложить, и если удалить exit то выводит разложение только в бесконечном цикле. Он будет показывать только если удалить clrscr и заново ctrl+f9 Сообщение отредактировано: DarkWishmaster - 24.01.2011 23:30 |
-Volvo- |
![]()
Сообщение
#9
|
Гость ![]() |
Цитата Так в тот то и дело что число можно разложить, и если удалить exit то выводит разложение только в бесконечном цикле. Фантастика - на другом форуме. У меня, значит, работает, а у тебя - нет? Значит, показывай полный код, что ты там накрутил...Он будет показывать только если удалить clrscr и заново ctrl+f9 |
DarkWishmaster |
![]()
Сообщение
#10
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 168 Пол: Мужской Репутация: ![]() ![]() ![]() |
Фантастика - на другом форуме. У меня, значит, работает, а у тебя - нет? Значит, показывай полный код, что ты там накрутил... С оператором clrscr; о ничего не выводит на экран, без него он выходит из цикла, и потом снова ctrl+f9 и видешь результат |
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
Ты б читал число через ReadLn - проблемы б не было. А то число прочиталось, Enter остался в буфере клавиатуры. Потом ты делаешь вроде бы паузу. через ReadLn, ан нет - всего навсего прочитается то, что осталось в буфере. Так что, учи матчасть...
|
DarkWishmaster |
![]()
Сообщение
#12
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 168 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
Krjuger |
![]()
Сообщение
#13
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Молодой человек,у вас какое условие входа и выполнения в цикле?
Цитата while M>=0 do А извините где вы инициализировали само значение М?Уже в самом цикле......Либо сделайте инициализацию раньше, а потом меняйте в цикле,либо верните то,как было у Volvo,потому что то, что написал он и то ,что вы не равнозначно. |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 18:40 |