Автор | Сообщение |
|
Отправлено: 05.03.22 09:52. Заголовок: Задание 8 №59
Задание 8 №59 цитата: | Вася составляет 5-буквенные слова, в которых есть только буквы П, И, Р, О, Г, причём в каждом слове буква Р может встречаться не более двух раз, при этом, если она есть, то после неё обязательно стоит гласная буква. Все допустимые буквы, кроме Р, могут встречаться в слове любое количество раз или не встречаться совсем. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько существует таких слов, которые может написать Вася? |
| Помогите найти ошибку. Мое решение: 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)
|
|
|
Новых ответов нет
[см. все]
|
|
|
Отправлено: 05.03.22 09:58. Заголовок: От обратного решил
Написал условие от обратного и ответ сошелся, но все равно я не понял, где ошибка, если писать задачу первым способом. 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)
|
|
|
|
| Администратор
|
Сообщение: 3350
|
|
Отправлено: 06.03.22 12:35. Заголовок: Nox пишет: где ошибк..
Nox пишет: цитата: | где ошибка, если писать задачу первым способом. |
|
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)
|
|
|
|