叠数的加法与字符串 RUNOOB python练习题 18

本文介绍了一道Python练习题,涉及将数字a叠加形成s的值,如2+22+222...。通过探讨字符串乘法和转换,提出了一种利用字符串简便解决此类问题的方法,并展示了相关的测试结果和源代码。

用来练手的python 练习题其十八,原链接 : python练习实例18

题干: 求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制

这种类型的叠数相加,让我不禁联想到了python中,字符串的乘法运算,那么能否利用字符串的乘法以及字符串与整型的互相转换来巧妙地完成这个问题呢,答案是肯定的。我们下面先来看几个测试结果:

a = "2" * 5
print(type(a))
print(a)
b = int(a)
print(type(b))
print(b)

输出结果如下:
我们发现,在python中,字符串和整型之间的转换是非常简单方便的。在计算叠数如22222时,如果我们使用整型矩阵,所需要的步骤就非常繁琐。反观使用字符串类型,我们可以轻松地构建一个叠数。原题解法的源代码如下:

def add_special(value, number):
  result = 0
  """
  value 是选中的数字
  number 是相加的数字个数
  """
  for i in range(number):
    value_str = str(value) * (i+1)
    result += int(value_str) 
  return result

实验如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值