Уведомления

Группа в Telegram: @pythonsu

#1 Июль 19, 2016 14:06:31

Straik32423
От: Ростов-на-Дону, Россия
Зарегистрирован: 2016-05-18
Сообщения: 46
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача с pythontutor

Привет. В общем, задача к теме про цикл while.

Выглядит просто. Загвоздка в том, как сохранить все эти значения x1, x2, x3 и тд. Так как списков я еще не проходил, значит, нужно без них.

 i = int(input())
elem = 0
n = 0
while i != 0:
    elem += i
    n += 1
    i = int(input())
s = elem/n

Ну вот я нашел s и n. А использовать не могу, так как нет x1, x2, x3…
Прошу подсказать мне. Но не все решение, а только то, что я объяснил выше.

Отредактировано Straik32423 (Июль 19, 2016 14:08:39)

Офлайн

#2 Июль 19, 2016 18:06:06

Straik32423
От: Ростов-на-Дону, Россия
Зарегистрирован: 2016-05-18
Сообщения: 46
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача с pythontutor

Не дождался ответа, пришлось решать с помощью списков.
Если кому интересно. вот эталонное решение:

 from math import sqrt
partial_sum = 0
partial_sum_squares = 0
x_i = int(input())
n = 0
while x_i != 0:
    n += 1
    partial_sum += x_i
    partial_sum_squares += x_i ** 2
    x_i = int(input())
print(sqrt((partial_sum_squares - partial_sum ** 2 / n) / (n - 1)))

Офлайн

#3 Июль 20, 2016 17:22:48

Stepan_M
Зарегистрирован: 2016-07-20
Сообщения: 31
Репутация: +  1  -
Профиль   Отправить e-mail  

Задача с pythontutor

У меня получилось почти так же, только без проверок равенства нулю:

 import math
n = int(input("Input n:"))
print("Input array:")
x = []
for i in range(n):
    x.append(int(input()))
s = sum(x) / n
print(math.sqrt(sum([(element - s) ** 2 for element in x]) / (n - 1))))

P.S. Первая строка “сползает” на один пробел

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version