steff77
?>

Петя составляет 6-буквенные коды из букв п, е, т, я. каждую букву можно использовать любое количество раз или совсем не использовать, при этом нельзя ставить подряд две гласные или две согласные. сколько различных кодов может составить петя?

Информатика

Ответы

nkochladze

Через флаги:

violator_songs = [

['World in My Eyes', 4.86],

['Sweetest Perfection', 4.43],

['Personal Jesus', 4.56],

['Halo', 4.90],

['Waiting for the Night', 6.07],

['Enjoy the Silence', 4.20],

['Policy of Truth', 4.76],

['Blue Dress', 4.29],

['Clean', 5.83]

]

li = []

special_list = []

qty = int(input('Сколько песен выбрать? '))

print()

count = 1

ok = True

while ok:

   for _ in range(qty):

       if ok:

           song = input('Введите название ' + str(count) + ' песни: ')

           for elem in violator_songs:

               li.extend(elem)

               if song not in li:

                   print('Ошибка. Такой песни в плейлисте нет!')

                   ok = False

                   break

               else:

                   special_list.append(song)

                   count += 1

       summ = 0

       for i_time in violator_songs:

           if i_time[0] in special_list:

               summ += i_time[1]

   if ok:

       print('\nОбщее время звучания песен:', float(round(summ, 2)))

       break

markitandl

Проблема в том, что дано четырехзначное число, а в итоговом выводе у вас сумма трех переменных.

Ваша программа проходит с число 2020, так число содержит два нуля.

Разберем вашу программу.

Возьмем число n = 1234:

Командой 1234 % 10 мы берем последнее число, то есть 4, и присваиваем это значение переменной a. a = 4

Далее целочисленным делением мы убираем последнюю цифру этого числа, то есть остается 123, и присваиваем это значение переменной b.

Следующая команда целочисленного деления уже отсекает последние 2 цифры, то есть остается 1, переменная с = 1.

Следующая команда дает остаток от деления b на 100, то есть 123 % 100 = 23. d = 23

Следующая команда печатает сумму полученных переменных, то есть

4 + 1 + 23 = 28, но начальное число = 1234, и сумма его цифр явно не равна 28(1 + 2 + 3 + 4 = 10)

Альтернативой может стать последовательное целочисленное деление числа n на 10, то есть:

Возьмем число n = 1234:

a = n % 10  #4

n //= 10    #123

b = n % 10  #3

n //= 10   # 12

c = n % 10   # 2

n //= 10   #1

print(a + b + c + n)   # 10

А вообще возможности языка позволяют оформить программу в 1 строку:

print(sum(map(int, input(

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Петя составляет 6-буквенные коды из букв п, е, т, я. каждую букву можно использовать любое количество раз или совсем не использовать, при этом нельзя ставить подряд две гласные или две согласные. сколько различных кодов может составить петя?
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Ионов202
chernovol1985255
alzheleshikov
avdeevau807
slazurnaya
saryba
Кочугурова
gordeevadesign2986
sergeev-alp5
menametov
tyrenumberone
tkozina
koochma
Ka2ffka141
olyafom1234