python小小白哟 发表于 2023-5-18 15:58:54

求s=a+aa+aaa+aaaa+aa的值

求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加)
这是下面的代码:
a = input('请输入数字:')
n = input("请输入要加几次:")
s = 0
for i in range(1,int(n)+1):
    s = int(a*i) + s
print(f"总和为:{s}")

其中
for i in range(1,int(n)+1):
    s = int(a*i) + s

这段代码是什么意思呢?

在线求各位大佬的指点。

isdkz 发表于 2023-5-18 15:59:10

这段代码的意思是,根据输入的数字a和要相加的次数n,利用for循环计算出s的值。在每次循环中,将a乘以i(i从1到n),然后将结果加到s中。最终得到的s就是a+aa+aaa+aaaa+...+aa...a的值,其中aa...a表示有n个a组成的数字。

python小小白哟 发表于 2023-5-18 16:08:01

isdkz 发表于 2023-5-18 15:59
这段代码的意思是,根据输入的数字a和要相加的次数n,利用for循环计算出s的值。在每次循环中,将a乘以i(i ...

但是如果当 a == 2,n==2的话,那不就是 s = int(a*i) + s,也就是 2乘以1 =2 也就是第一次s等于2,第二次是上面累积的S结果加上 a乘以i的值,第二次a乘以i的的值不是2*2=4吗?2+4=6,是我哪一步出错了吗?大佬?

wp231957 发表于 2023-5-18 16:08:17

a*i   这里代表字符串相乘   "A"*5="AAAAA"   "5"*5="55555" 外面套一层int 就变成了数值55555

python小小白哟 发表于 2023-5-18 17:11:25

wp231957 发表于 2023-5-18 16:08
a*i   这里代表字符串相乘   "A"*5="AAAAA"   "5"*5="55555" 外面套一层int 就变成了数值55555

非常感谢大佬   我把*和/搞混了,以为*是乘以,原来*是阶乘

wp231957 发表于 2023-5-18 17:13:01

本帖最后由 wp231957 于 2023-5-18 17:14 编辑

python小小白哟 发表于 2023-5-18 17:11
非常感谢大佬   我把*和/搞混了,以为*是乘以,原来*是阶乘

不是阶乘,用在字符上就是字符复制
用在数值上就是数学意义的乘法

python小小白哟 发表于 2023-5-18 17:20:04

wp231957 发表于 2023-5-18 17:13
不是阶乘,用在字符上就是字符复制
用在数值上就是数学意义的乘法

一个*是乘以,然后两个**是几次方的运算,是这样吧?然后如果变量为字符串,字符串*5,比如字符串是5的话,那就是55555是这样吧?

wp231957 发表于 2023-5-18 17:34:58

python小小白哟 发表于 2023-5-18 17:20
一个*是乘以,然后两个**是几次方的运算,是这样吧?然后如果变量为字符串,字符串*5,比如字符串是5的话 ...

对的

python小小白哟 发表于 2023-5-18 17:35:35

wp231957 发表于 2023-5-18 17:34
对的

非常感谢。
页: [1]
查看完整版本: 求s=a+aa+aaa+aaaa+aa的值