Найти - Пользователи
Полная версия: Не выводит верное значение
Начало » Python для новичков » Не выводит верное значение
1
MagentaIceberg
На одну единицу ошибка вывода, не вижу, что не так.

Задача такая:
Напишите программу, которая считывает с консоли числа (по одному в строке) до тех пор, пока сумма введённых чисел не будет равна 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)

Вывод 339, вместо 340.
PEHDOM
это потому что вы два раза в программе делаете одно и тоже, сначала вне цикла, а потом в цикле. Но вне цикла вы почемуто в переменную хранящую сумму квадратов не добавляете квадрат введенного числа.
первое число 1, вот у вас сумма квадратов и менше на единицу в квадрате .
py.user.next
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
>>>
MagentaIceberg
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)           #вывожу сумму квадратов
PEHDOM
MagentaIceberg
Единственно, переписал код и вообще ничего не выводит.
да нет вроде правильно все выводит
>>
1
-3
5
-6
-10
13
340
>>>
MagentaIceberg
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)
выводит такой результат: Эм
А компилятор там же в курсе выводит верно: Your text to link here… не понимаю в чём дело))…
PEHDOM
MagentaIceberg
MagentaIceberg
w = t**t #записал первый квадрат
это не первый квадрат, это t в степени t. с единицей оно канает, с другим числом нет.
MagentaIceberg
PEHDOM
MagentaIceberg
не понятно правда почему, но так и есть))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB