一个整数,如:
number = 1873
我有一个公式:weighted_sum = 1*1 + 8*2 + 7*3 + 3*4 = 50。我想计算四位数的加权和,所以输出看起来像:
1234 weighted sum: 30 / 4321 weighted sum:20
我试图将整数转换为字符串,但没有奏效。
number = str(1742)
weighted = number[0]*1 + number[1]*2 + number[2]*3 + number[3]*4
print(number, "weighted sum:", weighted)
输出
1742 Weight Sum: 1774442222
最佳答案
在将它们相乘之前,您需要将单个数字转换回整数:
weighted = int(number[0])*1 + int(number[1])*2 + int(number[2])*3 + int(number[3])*4
只取
number[i]
会给你一个带有那个数字的单字符字符串,在 Python 中乘以一个字符串 bt n
意味着将它连接 n
次。这可以使用
sum()
和生成器表达式来简化:weighted = sum(i * int(digit) for i, digit in enumerate(number, 1))
关于python - 在python中操作整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45674659/