Vika201880
15.03.2020 12:19

Программирование (желательно на C, C++, C# или Pascal ):

Найти минимум функции y=2x^3 с циклов while и do…while.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
mrgrabik
07.04.2023 00:49

Через флаги:

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

0,0(0 оценок)
Ответ:
lpozzz
07.04.2023 00:49

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

Ваша программа проходит с число 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(

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота