Решение с помощью программы на QBasic. Здесь используется система циклов с многоуровневым вложением. В программе был использован метод отсечения бесполезных ветвей поиска, что значительно уменьшает время поиска на 286 процессоре.
Исходный код
CLS kol = 0 FOR k1 = 1 TO 9 FOR k2 = 0 TO 9 IF (k2 <> k1) THEN FOR k3 = 2 TO 9 IF (k3 <> k1) AND (k3 <> k2) THEN FOR k4 = 1 TO 9 IF (k4 <> k1) AND (k4 <> k2) AND (k4 <> k3) THEN FOR k5 = 0 TO 9 IF (k5 <> k1) AND (k5 <> k2) AND (k5 <> k3) AND (k5 <> k4) AND (ABS((k1 * 10 + k2) ^ k3 - (k4 * 100 + k5 * 10 + k1)) < .001) THEN kol = kol + 1 PRINT k1; k2; k3; k4; k5 END IF NEXT k5 END IF NEXT k4 END IF NEXT k3 END IF NEXT k2 NEXT k1 PRINT "Kolichestvo "; kol
Сообщение отредактировал garret - Mar 22 2009, 16:14
--------------------
... ломается музыкальная установка. В такие минуты спеши слушать тишину.
19^2=361. Элементарный перебор: 1) "п" может быть только 2, т.к. уже 10^3>1000 2) Т.К. 32^2>1000, то "не"<32, т.е. "н" иожет быть 1,2 или 3. Однако точные квадраты на 2 и 3 заканчиваться не могут, значит "н"=1. 3) Если квадрат заканчивается на 1, то само число - на 1 или 9. Единица уже занята. 4) проверкой убеждаемся, что 19^2=361 - удовлетворяет условию задачи.
--------------------
Господь на своем суде ВАКовский список учитывать не будет.
Можно ли вместо звёздочек вставить в выражение НОК(*,*,*) – НОК(*,*,*) = 2009 в некотором порядке шесть последовательных натуральных чисел так, чтобы равенство стало верным?
Естественно, задача математическая, а не программистская.
Можно ли вместо звёздочек вставить в выражение НОК(*,*,*) – НОК(*,*,*) = 2009 в некотором порядке шесть последовательных натуральных чисел так, чтобы равенство стало верным?
Разговор о натуральных числах вида N, N+1, N+2, N+3, N+4, N+5???
Сообщение отредактировал garret - Mar 29 2009, 19:36
--------------------
... ломается музыкальная установка. В такие минуты спеши слушать тишину.
Простая задачка на взвешивания (надеюсь, не ошибся темой)
Задача №2
Цитата
Очень умный Правитель содержит монетный двор, на котором работают 100 рабочих. Каждый день он выдает каждому рабочему по 1 кг золота, из которого рабочий должен изготовить 100 монет (по 10 г). Правителю стало известно, что один из его рабочих делает фальшивые монеты - на 1 г легче. Как Правителю при помощи одного взвешивания точно определить фальшивомонетчика? Используются весы со стрелкой, т.е. не чашечные.
Условие задачи достаточное. Одно взвешивание - это однократное снятие показания с весов. Монеты резать нельзя. Надеюсь, что люди не будут искать в интернетах решение задачи, решать которую их никто не обязывает и никаких призов за это не даст И не публикуйте правильный ответ, если вы до него додумались. Напишите в ПМ, а я подтвержу, что вы решили правильно.
Сообщение отредактировал MayBee - Apr 17 2009, 12:41