如何创建总和?

嗨,
我想创建一个变量为n的和,变量n从0到固定值。
例如:
(a*b^(c-n))的和,其中a、b和c是常量,n从0到c的值。
就像这样:
C
Σ(a*b^(c-n))
N=0
因此,它将是:
如果a=10,b=20,c=30
10*20^(30-0)+10*20^(30-1)+10*20^(30-2)+...+10*20^(30-30)
我想这可以用FOR吊索来完成,但我不能让它正常工作。

选择 | 换行 | 行号
  1. import math
  2. a = 10
  3. b = 20
  4. c = 30
  5.  
  6.  
  7. for n in range(c):
  8.     result = a*math.pow(b, c-n)
  9.  
  10. print result
  11.  
  12.  

不过,这只给出了a*b的结果。
有什么好主意吗?

# 回答1


不要紧。
我解开了=)

选择 | 换行 | 行号
  1. import math
  2. a = 10
  3. b = 20
  4. c = 30
  5. n = 0
  6.  
  7.  
  8. while n != c:
  9.     result += a*math.pow(b, c-n)
  10.     n += 1
  11. print result
  12.  
  13.  
# 回答2


为什么不使用**运算符呢?下面使用内置函数sum()和列表理解。

选择 | 换行 | 行号
  1. >>> a,b,c=10,20,30
  2. >>> sum([a*b**(c-n) for n in range(c)])
  3. 11302545515789473684210526315789473684200L
  4. >>> 

标签: python

添加新评论