为什么此处输出是48不应该是24吗

img

img


要求是这样的 但我算了算不应该当n=2
a=2 程序运行两次 不应该是24吗

**表示幂运算
t=2, sum=0
i=1, t+t乘(10的0次幂是1),t=2+2=4, sum=4
i=2, t+t乘(10的1次幂是10),t=4+4*10=44, sum=48
程序改成这样:

n = int(input('n:'))
a = int(input('a:'))
sum = 0
t = 0
for i in range(1, n+1):
    t = a + t * 10
    sum += t
print("sum={}".format(sum))

测试1:
n:2
a:2
sum=24
测试2:
n:3
a:3
sum=369

运行第一次的时候,i为1, t = 2 + 2 * 10** 0 = 4
运行第二次的时候,i为2,t = 4 + 4* 10 **1 = 44
sum不就是44+4 = 48

如果有帮助,麻烦点一下采纳

是这样的,如果还是疑惑
可以在循环的每一步打印或者断点调试进行验证
下面是我个人理解标注的一些注释,可以看看

# 假设n和a都输入2
# t = 2
t = a
# 循环两次
# 第1次:i为12次:i为2
for i in range(1, n+1):
    # 第1次循环 t = 2 + 2 * (10**(1-1)) = 2 + 2 * 1(100次幂是1) = 4
    # 第2次循环 t = 4 + 4 * (10**(2-1)) = 4 + 4 * 10(101次幂是10) = 4 + 40 = 44
    t = t + t * (10**(i-1))

    # 第1次循环 sum + 4 = 0 + 4 = 4
    # 第2次循环 sum + 44 = 4 + 44 = 48
    sum += t
print("sum={}".format(sum))

t = t + t * (10**(i-1))
改为
t= a + a * (10**(i-1))
你把结果赋值回t,t也在变