码迷,mamicode.com
首页 > 编程语言 > 详细

Python 小议1: 求一个不确定列表中的每个数的对应数的次幂和。

时间:2014-12-17 06:55:16      阅读:675      评论:0      收藏:0      [点我收藏+]

标签:python   power   return   

最近在开始学Python,刚开始,很多不懂也很多不会,今天看函数的参数,函数的参数可以设置为可变参数,定义可变参数和定义list或tuple参数相比,仅仅在参数前面加了一个*号。结合之前看到的求次幂的函数,突然自己想到一个,就是求一个可变列表中的所有数的对应的次幂的和,例如,一个可变列表里有(2,3,4,5)这几个数,我想要的就是求2的2次方,3的3次方,4的4次方,5的5次方,然后对着几个次方后进行求和。

思路:第一步是求n的n次方,第二步是求和。

结合之前求 x的n次方的函数:

def power(x,n):

    s =1

    while n >0:

       s = s*x

       n = n-1

    return s

而我要求的是n的n次方,不存在x这个参数,把x换成n后,发现当执行n-1的时候,就把新的值传给了n,求的其实是n*(n-1)这种递减的了,一直困扰我到下班没有解决,请原谅我的小白水平吧。

下班在车上,突然想到,我可以把n在循环外面赋值给另外一个变量啊,到家吃过饭立马尝试,于是:

def power(n):

    s = 1

    j = n

    while n >0:

        s = s*j

        n = n-1

    return s

一试,果然可以,求出的是n的n次方。

接下来就是求和了,结合可变参数,最终函数是:


def calc(*num):

    sum = 0

    for n in num:

        s =1

        j = n

        while n>0:

            s = s*j

            n = n-1

        sum = sum +s

    return sum

这个就是求一个可变列表中,所有数的对应数的次幂后的和。


例如 print calc(1,2,3,4,5),结果就是:3413

    


以后还得继续努力,不知道这个是不是比较快的算法,有好的算法的同学,可以和我说,谢谢!

本文出自 “中原火麒麟” 博客,请务必保留此出处http://robertoji.blog.51cto.com/1165386/1590826

Python 小议1: 求一个不确定列表中的每个数的对应数的次幂和。

标签:python   power   return   

原文地址:http://robertoji.blog.51cto.com/1165386/1590826

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!