Форум » Кодирование и декодирование информации » Задание 8 №59 » Ответить

Задание 8 №59

Nox: Задание 8 №59 [quote]Вася составляет 5-буквенные слова, в которых есть только буквы П, И, Р, О, Г, причём в каждом слове буква Р может встречаться не более двух раз, при этом, если она есть, то после неё обязательно стоит гласная буква. Все допустимые буквы, кроме Р, могут встречаться в слове любое количество раз или не встречаться совсем. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько существует таких слов, которые может написать Вася?[/quote] Помогите найти ошибку. Мое решение: [pre2] from itertools import * k=0 for i in product ('ПИРОГ',repeat=5): s=''.join(i) if s.count('Р')==0: k+=1 elif (s.count('Р')==1 and ('РИ'in s or 'РО' in s)): k+=1 elif s.count('Р')==2 and s.count('РО')==2: k+=1 elif s.count('Р')==2 and s.count('РИ')==2: k+=1 elif s.count('РO')==1 and s.count('РИ')==1: k+=1 print(k) [/pre2]

Ответов - 2

Nox: Написал условие от обратного и ответ сошелся, но все равно я не понял, где ошибка, если писать задачу первым способом. [pre2] from itertools import * k=0 for i in product ('ПИРОГ',repeat=5): s=''.join(i) if (s.count('Р')<=2 and 'РР' not in s and 'РП' not in s and 'РГ' not in s and s[-1]!='Р'): k+=1 print(k) [/pre2]

Поляков: Nox пишет: где ошибка, если писать задачу первым способом.[pre2] from itertools import * k=0 for i in product ('ПИРОГ',repeat=5): s=''.join(i) if s.count('Р')==0: k+=1 elif s.count('Р')==1 and ('РИ'in s or 'РО' in s): k+=1 elif s.count('Р')==2: if s.count('РО') + s.count('РИ') == 2: k+=1 print(k)[/pre2]



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