Python 每日一题(计算数值和)
题目:计算 s = a + aa + aaa + ... +,其中 a 为 [1, 9] 之间的整数,最后一项表示 n 个 a,a 与 n 由键盘输入。分析:设置一个变量 m , 从 0 开始,假设a 为 9:第1次循环:m = 10 * m + a,结果是:a;【m = 10 * 0 + 9 = 9】第2次循环:m = 10 * m + a,结果是:aa; 【m = 10 * 9 + 9 = 9
·
题目:
计算 s = a + aa + aaa + ... + ,其中 a 为 [1, 9] 之间的整数,最后一项表示 n 个 a,a 与 n 由键盘输入。
分析:
设置一个变量 m , 从 0 开始,假设 a 为 9:
第1次循环:m = 10 * m + a,结果是:a;【m = 10 * 0 + 9 = 9】
第2次循环:m = 10 * m + a,结果是:aa; 【m = 10 * 9 + 9 = 99】
第3次循环:m = 10 * m + a,结果是:aa; 【m = 10 * 99 + 9 = 999】
...
第 n 次循环:m = 10 * m + a,结果是:aa...a (n个a); 【m = 10 * 9(n-1 个 9 ) + 9 = 99...9(n 个 9)】
程序实现:
# 解法1:
def sum_numbers(a, n):
'''
计算 n 个 a aa aaa ... n个a的和
:param a: 表示 [1, 9] 之间的整数
:param n: 表示 n 个整数位
:return: None
'''
total = 0 # 记录最后的和
m = 0 # 表示每次循环生成的 几个a 的数
if a > 0 and a < 10 and n > 0:
for i in range(n):
m = 10 * m + a
total += m
if i < n - 1:
print(m, end=' + ')
else:
print(m, end=' = ')
print(total)
sum_numbers(5, 5)
实现结果:
5 + 55 + 555 + 5555 + 55555 = 61725
【结语】以上整个程序的实现逻辑,还存在很多不全面的地方,欢迎各位大佬指点;如果觉得笔者不易,请给予点赞,给予我记录更多文章的动力!!
更多推荐
所有评论(0)