pythonize this!

Jussi Piitulainen jpiitula at ling.helsinki.fi
Tue Jun 15 08:35:58 EDT 2010


superpollo writes:

> goal (from e.c.m.): evaluate
> 1^2+2^2+3^2-4^2-5^2+6^2+7^2+8^2-9^2-10^2+...-2010^2, where each three
> consecutive + must be followed by two - (^ meaning ** in this context)
> 
> my solution:
> 
>  >>> s = 0
>  >>> for i in range(1, 2011):
> ...     s += i**2
> ...     if not (i+1)%5:
> ...         s -= 2*i**2
> ...     if not i%5:
> ...         s -= 2*i**2
> ...
>  >>> print s
> 536926141
>  >>>
> 
> bye

Me two:

    s = 0
    for k in range(1, 2010, 5):
        s += k**2 + (k + 1)**2 + (k + 2)**2 - (k + 3)**2 - (k + 4)**2

    s = 0
    for k in range(1, 2011):
        s +=  k**2 * (-1 if k % 5 in {4,0} else +1)



More information about the Python-list mailing list