习题解析之:数列求和
【问题描述】
计算特殊序列表达式的值,
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,即可得到序列中的每个数。
编写源程序如下:
【编程思路2】
用字符串进行处理。
设 a = '2' ,则 a * 4 为字符串 ‘2222’,用 int() 函数可将其转换为整数 2222。为此,用 sum() 将序列中的各个整数累加即可。
语句为 sum(int(a * i) for i in range(1,N + 1))
编写的源程序如下:

浙公网安备 33010602011771号