今天看啥  ›  专栏  ›  Oblning

Python 每日一题(计算数值和)

Oblning  · CSDN  ·  · 2020-12-27 10:16

题目:

计算 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)】


程序实现:

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)

结语 】以上整个程序的实现逻辑,还存在很多不全面的地方,欢迎各位大佬指点;如果觉得笔者不易,请给予点赞,给予我记录更多文章的动力!!




原文地址:访问原文地址
快照地址: 访问文章快照