Stroncy
Ноя. 20, 2014 21:32:42
Условия:
Напишите программу, которая считывает с консоли числа (по одному в строке) до тех пор, пока сумма введённых чисел не будет равна 0 и после этого выводит сумму квадратов всех считанных чисел.
Гарантируется, что в какой-то момент сумма введённых чисел окажется равной 0, после этого считывание продолжать не нужно.
В примере мы считываем числа 1, -3, 5, -6, -10, 13; в этот момент замечаем, что сумма этих чисел равна нулю и выводим сумму их квадратов, не обращая внимания на то, что остались ещё не прочитанные значения.
Stroncy
Ноя. 21, 2014 01:01:47
Paranoia_Agent, а как с вводом сделать.. чтоб вводить любые числа?
Paranoia_Agent
Ноя. 21, 2014 01:02:42
Stroncy, с помощью input?
Ввод построчно, через enter:
array=[int(input()) for x in range(10)]
где 10 - кол-во элементов.
Ввод через запятую, либо любой другой разделитель:
array=list(map(int,input().split(",")))
где в кавычках указан разделитель.
Stroncy
Ноя. 21, 2014 01:10:45
Paranoia_Agent, они не просто должны вводиться(input) но и каждое число с новой строки..
блин.. наверно надо input поместить в цикл while.. Вот так должен быть ввод и вывод(без букв):
http://i68.fastpic.ru/big/2014/1121/df/fa68ab90b76b7e0fa7041392714d01df.jpg
Paranoia_Agent
Ноя. 21, 2014 01:19:48
Stroncy
Первый вариант из сообщения выше, я не хотел плодить много сообщений и редактировал то.
Stroncy
Ноя. 21, 2014 01:24:17
Если так, то выдаёт ошибку.
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("А вот и не вышло нолика в сумме")
тут ввод построчно, а нужно каждое число вводить с новой строки ((
Paranoia_Agent
Ноя. 21, 2014 01:35:57
Где ошибка?:
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)
Stroncy
Ноя. 21, 2014 01:41:32
Paranoia_Agent, СПАСИБО!!! Всё получилось..
hottabov
Март 31, 2016 12:46:59
А можно сделать ту же задачу с помощью списков:
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.