python|superposition problem in for loop

Original problem:  ccc17j2

the shifty sum when N is 12 and k is 1, it is: 12+120=132. As another example, the shifty sum when N is 12 and k is 3 is 12+120+1200+12000=13332.

#ccc17j2 shifty sum
#E Sun
#2021.09.03
N=int(input())
K=int(input())
for i in range(K+1):
    N+=N*10**K
print(N)

原代码如上,这里我的错误是N+=N*10**K,这个算式会导致叠加。也就是说结果会变成

N+(N+N*10**K)+[N+N*10**K+(N+N*10**K)*10**K]...

#ccc17j2 shifty sum
#E Sun
#2021.09.03
N=int(input())
K=int(input())
total=N
for i in range(K):
    N=N*10
    total+=N
print(total)
#修改后

这个修改后代码中我用了一个counter代替N,这样就只有一个N被加进去,不会叠加了;而那个不断等于自身十倍的N就相当于exponent不断上升

Pretty tricky,hh

盲点:用counter代替不想被叠加的数值,用不断用十倍的自己代替原来的自己,以此达到exponent上升

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值