参考视频教程:    **百度资深工程师 全方位讲解测试面试  ** 题目来源:数据蛙#第十期就业班练习题# 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