智一面的面试题提供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