python编程老师面试题_PYTHON编程面试题-10

题目来源:数据蛙#第十期就业班练习题# 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

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值