題目來(lái)源:數(shù)據(jù)蛙#第十期就業(yè)班練習(xí)題# 2020/10/11就業(yè)班練習(xí)題
- 題目1:python實(shí)現(xiàn)9*9乘法表
# 注意:為保持格式整體統(tǒng)一猫十,結(jié)尾使用\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('')
運(yùn)行結(jié)果:
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實(shí)現(xiàn)水仙花數(shù):
如果一個(gè) 3 位數(shù)等于其各位數(shù)字的立方和览濒,則稱這個(gè)數(shù)為水仙花數(shù)。
例如:153 = 1^3 + 5^3 + 3^3拖云,因此 153 就是一個(gè)水仙花數(shù)
問(wèn)題:求1000以內(nèi)的水仙花數(shù)(3位數(shù))
for i in range(100, 1000):
if (i//100)**3 + (i%100//10)**3 + (i%100%10)**3 == i:
print(i)
運(yùn)行結(jié)果:
153
370
371
407
- 題目3::將一個(gè)正整數(shù)分解質(zhì)因數(shù)贷笛。例如:輸入90,輸出90=2x3x3x5
# 思路:
# 1.用循環(huán)得出能夠分解90的數(shù)據(jù)列表宙项,例如:找到90的質(zhì)因數(shù)2后乏苦,則目標(biāo)數(shù)據(jù)變?yōu)樯?45,再對(duì)45找質(zhì)因數(shù)尤筐,以此循環(huán)
# 2.對(duì)1的列表使用循環(huán)打印出來(lái)
m= int(input('請(qǐng)輸入正整數(shù):'))
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
運(yùn)行結(jié)果:
請(qǐng)輸入正整數(shù):90
90 = 2 x 3 x 3 x 5
- 題目4:有一分?jǐn)?shù)序列: 2/1汇荐,3/2,5/3盆繁,8/5掀淘,13/8,21/13 .......求出這個(gè)數(shù)列的前20項(xiàng)之和
# 思路:
# 1. 先求出 1油昂,1革娄,2,3冕碟,5拦惋,8..的數(shù)列
# 2. 根據(jù)1的數(shù)列求出題目要求的數(shù)列,2/1,3/2,5/3安寺,8/5
# 3. 求出數(shù)列2的前20項(xiàng)和:觀察數(shù)列1和數(shù)列2的差異厕妖,會(huì)發(fā)現(xiàn)數(shù)列1比數(shù)列2長(zhǎng)度少了2,所以求數(shù)列1的循環(huán)次數(shù)是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. 先求階乘的結(jié)果
# 2. 再將第一步的階乘結(jié)果相加
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)
運(yùn)行結(jié)果:
2561327494111820313
- 題目6:一個(gè)數(shù)如果恰好等于它的因子之和挑庶,這個(gè)數(shù)就稱為"完數(shù)”言秸。例如6=1+2+3.編程找出1000以內(nèi)的所有完數(shù)
# 注意與題目3的區(qū)別,因子和質(zhì)因子迎捺,該題目中因子不包含本身
# 先求出一個(gè)數(shù)的所有因子井仰,再求出所有因子的和,判斷和是否等于這個(gè)數(shù)破加,如果等于則打印出來(lái)
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)
運(yùn)行結(jié)果:
6
28
496