Форум сайта python.su
На одну единицу ошибка вывода, не вижу, что не так.
Задача такая:
Напишите программу, которая считывает с консоли числа (по одному в строке) до тех пор, пока сумма введённых чисел не будет равна 0 и сразу после этого выводит сумму квадратов всех считанных чисел.
Гарантируется, что в какой-то момент сумма введённых чисел окажется равной 0, после этого считывание продолжать не нужно.
В примере мы считываем числа 1, -3, 5, -6, -10, 13; в этот момент замечаем, что сумма этих чисел равна нулю и выводим сумму их квадратов, не обращая внимания на то, что остались ещё не прочитанные значения.
Sample Input:
1
-3
5
-6
-10
13
4
-8
Sample Output:
340
Написал это:
w = 0 t = int(input()) x = t while t != 0: r = int(input()) x += r t = x y = r ** 2 w += y print (w)
Офлайн
это потому что вы два раза в программе делаете одно и тоже, сначала вне цикла, а потом в цикле. Но вне цикла вы почемуто в переменную хранящую сумму квадратов не добавляете квадрат введенного числа.
первое число 1, вот у вас сумма квадратов и менше на единицу в квадрате .
[code python][/code]
Отредактировано PEHDOM (Март 25, 2021 15:30:28)
Офлайн
MagentaIceberg
Напишите программу, которая считывает с консоли числа (по одному в строке) до тех пор, пока сумма введённых чисел не будет равна 0 и сразу после этого выводит сумму квадратов всех считанных чисел.
Гарантируется, что в какой-то момент сумма введённых чисел окажется равной 0, после этого считывание продолжать не нужно.
>>> def f(): ... summ = 0 ... pow2summ = 0 ... while True: ... number = int(input()) ... pow2summ += number * number ... summ += number ... if summ == 0: ... break ... print(pow2summ) ... >>> f() 1 -3 5 -6 -10 13 340 >>>
Офлайн
PEHDOMСпасибо увидел! Единственно, переписал код и вообще ничего не выводит.
это потому что вы два раза в программе делаете одно и тоже, сначала вне цикла, а потом в цикле. Но вне цикла вы почемуто в переменную хранящую сумму квадратов не добавляете квадрат введенного числа.первое число 1, вот у вас сумма квадратов и менше на единицу в квадрате .
t = int(input()) #делаю первый ввод w = 0 #сюда буду записывать сумму квдаратов чисел w = t**t #записал первый квадрат x = 0 #сюда буду записывать сумму чисел x += t #записываю первое число while x != 0: #пока сумма не равна нулю цикл работает r = int(input())#делаю ввод числа x += r #добавляю к сумме чисел y = r ** 2 #возвожу в квадрат считываемое число w += y #добавляю к сумме квадратов print (w) #вывожу сумму квадратов
Офлайн
MagentaIcebergда нет вроде правильно все выводит
Единственно, переписал код и вообще ничего не выводит.
>>
1
-3
5
-6
-10
13
340
>>>
[code python][/code]
Офлайн
PEHDOMвыводит такой результат: Эм
= int(input()) #делаю первый ввод
w = 0 #сюда буду записывать сумму квдаратов чисел
w = t**t #записал первый квадрат
x = 0 #сюда буду записывать сумму чисел
x += t #записываю первое число
while x != 0: #пока сумма не равна нулю цикл работает
r = int(input())#делаю ввод числа
x += r #добавляю к сумме чисел
y = r ** 2 #возвожу в квадрат считываемое число
w += y #добавляю к сумме квадратов
print (w)
Офлайн
MagentaIceberg
MagentaIcebergэто не первый квадрат, это t в степени t. с единицей оно канает, с другим числом нет.
w = t**t #записал первый квадрат
[code python][/code]
Отредактировано PEHDOM (Март 26, 2021 15:54:18)
Офлайн
PEHDOMне понятно правда почему, но так и есть))
MagentaIceberg
Офлайн