I am a teacher!

导航

习题解析之:数列求和

【问题描述】

计算特殊序列表达式的值,
a+aa+aaa+aaaa+...+a...a(N个a)
其中1<=a<=9,第N项由N个a组成.

例:若a=1,N=3,表达式为:
1+11+111

输入:
第一行输入一个整数A,且该数应该介于1至9之间(包含1和9)
第二行输入一个整数N。

输出:
输出其 N 项数列之和的值。
当输入不符合要求时输出:data error

示例1

输入:
1
3
输出:
123

示例2

输入:
12
-3
输出:
data error

【编程思路1】

        要计算表达式 a+aa+aaa+aaaa+...+a...a(N个a)的值,关键是要生成序列中的各个整数。
        设 a = 2,则 a * 10 + a = 22, 22 × 10 + 2 = 222,222 × 10 + 2 = 2222 ……

        可以设 p = a,每次循环执行 p = p * 10 + a,即可得到序列中的每个数。

        编写源程序如下:

        image 

【编程思路2】

        用字符串进行处理。

        设 a = '2' ,则 a * 4 为字符串 ‘2222’,用 int() 函数可将其转换为整数 2222。为此,用 sum() 将序列中的各个整数累加即可。

        语句为 sum(int(a * i) for i in range(1,N + 1))

        编写的源程序如下:

        image

posted on 2025-11-20 10:20  aTeacher  阅读(25)  评论(0)    收藏  举报