智一面的面试题提供python的测试题
使用地址:http://www.gtalent.cn/exam/interview?token=906315a76b5c14231889351088713f76

题目:输出并计算
求s=a+aa+aaa+aaaa+aa...a的值,a是一个数字,然后在输入一个数字n,n控制有几项

输出结果:逐行输出每一项,并求出最后的和

例如输入:a=5,n=5

输出为:

 

解法1 常规思路
程序分析

1、将输入的a开始作为字符输入

2、然后循环遍历n层,每层对a进行字符串乘

3、然后将每层的的到的字符串进行输出

4、同时对字符串进行转化求和运算

5、最后输出这个和值

源代码:

a=input('请输入计算数:a = ')
n=eval(input('请输入层数:n = '))
s=0
for i in range(1,n+1):
    num=a*i
    s+=eval(num)
    print(num)
print('计算和为:{}'.format(s))
运行结果:

 

解法2 reduce函数
程序分析

1、按题目要求将n个a的每一项进行转化

2、比如第一个就是a,第二个就是a*10+a...

3、得到的每个数加入到列表中,并输出每个数

4、通过reduce对列表中的元素进行求和

5、最后输出这个和值

源代码:

from functools import reduce
 
number = 0
sn = []
a = int(input('请输入 a = '))
n = int(input('请输入 n = '))
for count in range(n):
    number = number + a
    a = a * 10
    sn.append(number)
    print (number) 
sn = reduce(lambda x,y : x + y,sn)
print ("计算和为:",sn)
运行结果:


————————————————

我们的python技术交流群:941108876
智一面的面试题提供python的测试题
http://www.gtalent.cn/exam/interview?token=906315a76b5c14231889351088713f76