Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 20, 2014 21:32:42

Stroncy
Зарегистрирован: 2014-11-20
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача: считать числа пока сумма не будет равна нулю.

Условия:
Напишите программу, которая считывает с консоли числа (по одному в строке) до тех пор, пока сумма введённых чисел не будет равна 0 и после этого выводит сумму квадратов всех считанных чисел.
Гарантируется, что в какой-то момент сумма введённых чисел окажется равной 0, после этого считывание продолжать не нужно.
В примере мы считываем числа 1, -3, 5, -6, -10, 13; в этот момент замечаем, что сумма этих чисел равна нулю и выводим сумму их квадратов, не обращая внимания на то, что остались ещё не прочитанные значения.

Офлайн

#2 Ноя. 21, 2014 00:46:48

Paranoia_Agent
Зарегистрирован: 2014-06-25
Сообщения: 75
Репутация: +  5  -
Профиль   Отправить e-mail  

Задача: считать числа пока сумма не будет равна нулю.

str="1,-3,5,-6,-10,13,14,15,-8"
array=list(map(int,str.split(",")))
for index in range(1,len(array)):
    if sum(array[:index])==0:
        print(sum([sq**2 for sq in array[:index]]))
        break
else:
    print("А вот и не вышло нолика в сумме")

Офлайн

#3 Ноя. 21, 2014 01:01:47

Stroncy
Зарегистрирован: 2014-11-20
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача: считать числа пока сумма не будет равна нулю.

Paranoia_Agent, а как с вводом сделать.. чтоб вводить любые числа?

Офлайн

#4 Ноя. 21, 2014 01:02:42

Paranoia_Agent
Зарегистрирован: 2014-06-25
Сообщения: 75
Репутация: +  5  -
Профиль   Отправить e-mail  

Задача: считать числа пока сумма не будет равна нулю.

Stroncy, с помощью input?

Ввод построчно, через enter:

array=[int(input()) for x in range(10)]
где 10 - кол-во элементов.

Ввод через запятую, либо любой другой разделитель:
array=list(map(int,input().split(",")))
где в кавычках указан разделитель.

Отредактировано Paranoia_Agent (Ноя. 21, 2014 01:10:57)

Офлайн

#5 Ноя. 21, 2014 01:10:45

Stroncy
Зарегистрирован: 2014-11-20
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача: считать числа пока сумма не будет равна нулю.

Paranoia_Agent, они не просто должны вводиться(input) но и каждое число с новой строки..
блин.. наверно надо input поместить в цикл while.. Вот так должен быть ввод и вывод(без букв):
http://i68.fastpic.ru/big/2014/1121/df/fa68ab90b76b7e0fa7041392714d01df.jpg

Отредактировано Stroncy (Ноя. 21, 2014 01:19:06)

Офлайн

#6 Ноя. 21, 2014 01:19:48

Paranoia_Agent
Зарегистрирован: 2014-06-25
Сообщения: 75
Репутация: +  5  -
Профиль   Отправить e-mail  

Задача: считать числа пока сумма не будет равна нулю.

Stroncy
Первый вариант из сообщения выше, я не хотел плодить много сообщений и редактировал то.

Офлайн

#7 Ноя. 21, 2014 01:24:17

Stroncy
Зарегистрирован: 2014-11-20
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача: считать числа пока сумма не будет равна нулю.

Если так, то выдаёт ошибку.

array=[int(input()) for x in range(10)]
for index in range(1,len(array)):
    if sum(array[:index])==0:
        print(sum([sq**2 for sq in array[:index]]))
        break
else:
    print("А вот и не вышло нолика в сумме")
тут ввод построчно, а нужно каждое число вводить с новой строки ((

Отредактировано Stroncy (Ноя. 21, 2014 01:26:22)

Офлайн

#8 Ноя. 21, 2014 01:35:57

Paranoia_Agent
Зарегистрирован: 2014-06-25
Сообщения: 75
Репутация: +  5  -
Профиль   Отправить e-mail  

Задача: считать числа пока сумма не будет равна нулю.

Где ошибка?:

Your text to link here…

Для большого потока элементов:

summa=0
summa_sq=0
while True:
    inp=int(input())
    summa=summa+inp
    summa_sq=summa_sq+inp**2
    if summa==0:
        break
print(summa_sq)

Отредактировано Paranoia_Agent (Ноя. 21, 2014 01:36:29)

Офлайн

#9 Ноя. 21, 2014 01:41:32

Stroncy
Зарегистрирован: 2014-11-20
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача: считать числа пока сумма не будет равна нулю.

Paranoia_Agent, СПАСИБО!!! Всё получилось..

Офлайн

#10 Март 31, 2016 12:46:59

hottabov
Зарегистрирован: 2016-03-20
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача: считать числа пока сумма не будет равна нулю.

А можно сделать ту же задачу с помощью списков:

a = [int(input())]
x = 0
for i in a:
    if sum(a) != 0:
        a.append(int(input()))
    else:
        for q in a:
            q *= q
            x += q
print(x)
PS. Задача взята с курсов Stepic.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version