Форум » Выполнение и анализ алгоритмов для исполнителей » Задание 5 № 3453, № 3454 и № 3455 в одной упаковке » Ответить

Задание 5 № 3453, № 3454 и № 3455 в одной упаковке

VectorASD: Этот пост создан чисто для того, чтобы новички могли получить ответы сразу на 3 задания программно Если же ввести в поиск любой номер из трёх заданий, то вы всяко попадёте сюда :S Всё началось с поста: http://egekp.unoforum.pro/?1-13-0-00000312-000-0-0 Вот моя версия алгоритма, где юзаются множества ;'-} если N будет больше 255, то уже никак не выйдут числа от 50 до 100... Но для достоверности всё же я до 10к считаю :S [pre2] def Bin(Ch): return bin(Ch)[2:].rjust(8, "0") #Здесь не нужна, но так, оставил... :S def Bin2(Ch): return bin(Ch)[2:] def Z3453(): print("Z3453, Z3454 и Z3455 служат императору!") Res, Res2 = set(), set() Res3 = None for N in range(4, 10000): B = Bin2(N) if B.count("1") > B.count("0"): B += "0" else: B += "1" L = len(B) if L % 2 == 0: B2 = B[: L // 2 - 1] + B[L // 2 + 1 :] else: B2 = B[: L // 2 - 1] + B[L // 2 + 2 :] R = int(B2, 2) #print(N, B, B2, R) if R in range(50, 101): if R not in Res: print(N, R) #Вываливает изначальное число и ответ, если ответ на промежутке [50;100] будет встречаться впервые :S if R == 58: Res2.add(N) if R == 55: Res3 = N Res.add(R) print("Z3453:") print("Ответ:", Res3) print("Валидол:", "есть" if Res3 == 195 else "просрочен :/") print("Z3454:") print("Промежуточные результаты:", Res2) print("Ответ:", len(Res2)) print("Валидол:", "есть" if len(Res2) == 11 else "просрочен :/") print("Z3455:") print("Промежуточные результаты:", Res) print("Ответ:", len(Res)) print("Валидол:", "есть" if len(Res) == 13 else "просрочен :/") def Z3454(): Z3453() def Z3455(): Z3453() Z3455() #Z3520() #Z3524() #Z3526() [/pre2] UPD: срастил 3455 и 3454 в одну упаковку!!! UPD2: здесь УЖЕ есть ответ на 3453 :S Дописал код

Ответов - 1

VectorASD: Почему-то я не могу попасть сюда через поиск по любому из трёх чисел, что в названии поста! Нужно время на индексирование поисковой системой?



полная версия страницы