Олимпиадные задачи. |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Олимпиадные задачи. |
Banda |
Сообщение
#1
|
Гость |
Привет!
Сидим сейчас втроём, пытаемся решить задачи по информатике. Остальные уже решили, остались только эти две. Ну никак не получается. Люди помогите плизз!!! Дело жизни и смерти. №1 Задано целое число n (1<=n<=1000000). Найти наименьшее натуральное число с произведением чисел равных n, если такого числа нет, то вывести ноль. №2 Восстановление скобок. Исходные данные - строка состоящая из круглых скобок и знаков вопроса. Составить программу печатающую все правильные скобочные выражения, которые можно восстановить из исходной строки заменой знака вопрос на скобку, либо сообщающую что нет решения. Пример: ((??)? - вывод ((())), либо (()()). )? - вывод программы - решения нет. Заранее спасибо, Лена, Юля и Таня. |
fms |
Сообщение
#2
|
Бывалый Группа: Пользователи Сообщений: 195 Пол: Женский Репутация: 0 |
№1. тут: http://forum.pascal.net.ru/?board=zd;actio...;num=1068650058 можно посмотреть как выделять цифры из числа. потом найти их произведение. ну и сравнить с n.
2.это тоже вроде где то тут было. хотя может и нет. -------------------- непонимающая..
|
Serega |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 15 Пол: Мужской Репутация: 0 |
Первую решил. Вторую пока не получается
Код program banda; uses crt; var k,l,a,n,pr:longint; begin clrscr; writeln('n - ?'); readln(n); k:=1000000; while k<>0 do begin l:=k; pr:=1; while l <> 0 do begin pr:=pr*(l mod 10); l:=l div 10; end; if pr=n then a:=k; k:=k-1; end; writeln(a); readln; end. Сообщение отредактировано: volvo - -------------------- Не могу сидеть, когда другие работают.
Пойду полежу. |
Текстовая версия | 13.10.2024 21:00 |