参考视频教程: **百度资深工程师 全方位讲解测试面试 ** 题目来源:数据蛙#第十期就业班练习题# 2020/10/11就业班练习题
- 题目1:python实现9*9乘法表
# 注意:为保持格式整体统一,结尾使用\t制作表符
for i in range(1,10):
j = 1
while j <= i:
print('%dx%d=%d'% (j, i, i*j), end='\t')
j += 1
print('')
运行结果:
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
- 题目2 PYTHON实现水仙花数:
如果一个 3 位数等于其各位数字的立方和,则称这个数为水仙花数。
例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一个水仙花数
问题:求1000以内的水仙花数(3位数)
for i in range(100, 1000):
if (i//100)**3 + (i%100//10)**3 + (i%100%10)**3 == i:
print(i)
运行结果:
153
370
371
407
- 题目3::将一个正整数分解质因数。例如:输入90,输出90=2x3x3x5
# 思路:
# 1.用循环得出能够分解90的数据列表,例如:找到90的质因数2后,则目标数据变为商 45,再对45找质因数,以此循环
# 2.对1的列表使用循环打印出来
m= int(input('请输入正整数:'))
n = m
r = []
i = 2
print('%d = '% m, end='')
while i <= n:
if n%i == 0:
if n == i:
print('%d'%n )
else:
print('%d x '%i, end='')
r.append(i)
n = n/i
i = 2
else:
i += 1
运行结果:
请输入正整数:90
90 = 2 x 3 x 3 x 5
- 题目4:有一分数序列: 2/1,3/2,5/3,8/5,13/8,21/13 .......求出这个数列的前20项之和
# 思路:
# 1. 先求出 1,1,2,3,5,8..的数列
# 2. 根据1的数列求出题目要求的数列,2/1,3/2,5/3,8/5
# 3. 求出数列2的前20项和:观察数列1和数列2的差异,会发现数列1比数列2长度少了2,所以求数列1的循环次数是n+2
n = 20
ls = []
lr = []
s = 0
i = 0
while len(ls) < n+2:
if i < 2:
ls.append(1)
else:
ls.append(ls[i-1] + ls[i-2])
lr.append((ls[i-1] + ls[i-2]) / ls[i-1])
s = s + (ls[i-1] + ls[i-2]) / ls[i-1]
i += 1
print(s)
- 题目5:求1+2!+3!+.....+20!的和
# 思路:
# 1. 先求阶乘的结果
# 2. 再将第一步的阶乘结果相加
n = 20
s = 0
m = 1
for i in range(1,n+1):
j = i
while j > 0:
m = m * j
j = j - 1
s = s + m
m = 1
print(s)
运行结果:
2561327494111820313
- 题目6:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数
# 注意与题目3的区别,因子和质因子,该题目中因子不包含本身
# 先求出一个数的所有因子,再求出所有因子的和,判断和是否等于这个数,如果等于则打印出来
for x in range(1,1000):
s = 0
ls1 = []
for i in range(1,x):
if x%i == 0:
ls1.append(i)
for j in ls1:
s = s + j
if x == s:
print(x)
运行结果:
6
28
496