Уведомления

Группа в Telegram: @pythonsu

#1 Март 25, 2021 12:31:14

MagentaIceberg
Зарегистрирован: 2021-03-18
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Не выводит верное значение

На одну единицу ошибка вывода, не вижу, что не так.

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

Офлайн

#2 Март 25, 2021 15:30:16

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Не выводит верное значение

это потому что вы два раза в программе делаете одно и тоже, сначала вне цикла, а потом в цикле. Но вне цикла вы почемуто в переменную хранящую сумму квадратов не добавляете квадрат введенного числа.
первое число 1, вот у вас сумма квадратов и менше на единицу в квадрате .



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Март 25, 2021 15:30:28)

Офлайн

#3 Март 26, 2021 09:56:14

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9880
Репутация: +  853  -
Профиль   Отправить e-mail  

Не выводит верное значение

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
>>>



Офлайн

#4 Март 26, 2021 13:54:51

MagentaIceberg
Зарегистрирован: 2021-03-18
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Не выводит верное значение

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)           #вывожу сумму квадратов

Офлайн

#5 Март 26, 2021 14:50:33

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Не выводит верное значение

MagentaIceberg
Единственно, переписал код и вообще ничего не выводит.
да нет вроде правильно все выводит
>>
1
-3
5
-6
-10
13
340
>>>



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#6 Март 26, 2021 15:27:16

MagentaIceberg
Зарегистрирован: 2021-03-18
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Не выводит верное значение

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… не понимаю в чём дело))…

Офлайн

#7 Март 26, 2021 15:54:00

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Не выводит верное значение

MagentaIceberg

MagentaIceberg
w = t**t #записал первый квадрат
это не первый квадрат, это t в степени t. с единицей оно канает, с другим числом нет.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Март 26, 2021 15:54:18)

Офлайн

#8 Март 28, 2021 17:45:44

MagentaIceberg
Зарегистрирован: 2021-03-18
Сообщения: 28
Репутация: +  0  -
Профиль   Отправить e-mail  

Не выводит верное значение

PEHDOM
MagentaIceberg
не понятно правда почему, но так и есть))

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version