编写一个显示 12位的程序,
每个数字等于他之前数字的三倍。
我尝试像这样编码
a , b , c = 1 , 1 , 1
print(c)
while c < 12 : # for looping
c = c + 1 # c for counting
b = a+b
y = 3*b
print(c,y)
任何人都可以帮我纠正结果
答案 0 :(得分:0)
您可以使用power operator:
from itertools import islice
def numbers(x, base=3):
n = 0
while True:
yield x * base ** n
n += 1
for n in islice(numbers(1), 12):
print(n)
或者,如果你真的喜欢这样做,那么这是你的代码的固定版本:
b, c = 1, 0
while c < 12:
print(c, b)
b *= 3
c += 1
答案 1 :(得分:0)
您可以从列表开始,其中第一个元素是倍数的开头:
- 以1或您喜欢的号码开头
multiples = [1]
for i in range(1, 12):
multiples.append(3 * multiples[i - 1])
print(multiples)
- 产出:[1,3,9,27,82,243,729,2187,6561,19683,59049,177147]