python题目解决过程
一道来自 https://www.runoob.com/python/python-exercise-example18.html 的题目刚开始看题目的时候觉得蛮简单 但是亲自写了之后才发现 并不是那种1+1等于2的题目
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
咋一看 非常简单 但是我写了二三十分钟才弄出来 中途还修改了一下才弄出来 没有看案例是自己写的
我给出的解法
a = int(input('请输入一个数字: '))
n = int(input('n个数值相加: '))
k = 0
for i in range(1,n+1):
w = str(a) * i
k += int(w)
print(k)
这个很简单 就不写注释了 当然 很少写注释 没有写注释的习惯 直接解释这段代码是干什么的
前两行要求输入数字 第一行要求输入的是一个数字 第二行也是要求输入一个数字 第二行的数字决定相加n-1次自身
(比如 第一次输入2 第二次输入5 就等于 2 + 2 + 2 + 2 + 2) 数字2相加了四次数字2
只不过从第一次相加之后 这个数字末尾就拼接了一个2 之后的每一次相加都拼接2
于是 2 + 2 + 2 + 2 + 2 就变成了 2 + 22 + 222 + 2222 + 22222
第三行 for循环遍历 每进入一次循环 就将数字转换为字符串 并且复制字符i次 第一次循环为一个字符类型的数字 第二次循环为两个字符类型的数字 以此类推
只不过 每进入一次循环 k就累加数字类型的数字 直到for循环结束 然后再输出k的值 最后再检查一下能否运行成功
a = int(input('请输入一个数字:'))
n = int(input('n个数值相加:'))
print(sum(a*int('1'*(i+1)) for i in range(n))) kesai 发表于 2022-5-20 23:03
a = int(input('请输入一个数字:'))
n = int(input('n个数值相加:'))
print(sum(a*int('1'*(i+1)) for i...
这个简洁 写的可以 本来用str变int就很方便,答案还用了reduce才解决.:loveliness: 呃呃呃去乡下向天歌 牛笔,挺不错的呀 崇拜的目光!~ 这个是不是属于数组啊 ? 学习了! sum()
页:
[1]
2