Python常见的基础算法题有哪些
导读:本文共2020字符,通常情况下阅读需要7分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 1.求100(含100)以内所有偶数的和range(start,end,step)这个序列生成器,和那个切片的语法一样,含头不含尾,step是步长,这里就不需要在对j进行判断了,对于这些简单求奇数和、求偶数和,就n的倍数和等等就可以这样做。forjinrange(0,101,2):s=s+jprint(s)2.求第n位斐波那契数这是求第n位斐波那契数,大家可以尝... ...
目录
(为您整理了一些要点),点击可以直达。- (5):#斐波那契数列:1,1,2,3,5,8,13,21,3
- (11):#c=a
- (12):#a=b
- (13):#b=c+b
- (14):#上三式可以简写为:
- (26):#153
- (27):#370
- (28):#371
- (29):#407
- (31):#a=0
- (32):#whilea<9:
- (33):#a+=1
- (34):#b=0
- (35):#whileb<a:
- (36):#b+=1
- (38):#print()
- (43):"""
- (44):1*1=1
- (45):1*2=2 2*2=4
- (46):1*3=3 2*3=6 3*3=9
- (47):1*4=4 2*4=8 3*4=12 4*4=16
- (48):1*5=5 2*5=10 3*5=15 4*5=20
- (49):1*6=6 2*6=12 3*6=18 4*6=24
- (50):1*7=7 2*7=14 3*7=21 4*7=28
- (53):"""
- (59):#大马=2,中马=30,小马=68
- (60):#大马=5,中马=25,小马=70
- (61):#大马=8,中马=20,小马=72
- (62):#大马=11,中马=15,小马=74
- (63):#大马=14,中马=10,小马=76
- (64):#大马=17,中马=5,小马=78
- (65):#大马=20,中马=0,小马=80
range(start,end,step)这个序列生成器,和那个切片的语法一样,含头不含尾,step是步长,这里就不需要在对j进行判断了,对于这些简单求奇数和、求偶数和,就n的倍数和等等就可以这样做。
forjinrange(0,101,2):
s=s+j
print(s)
这是求第n位斐波那契数,大家可以尝试多种方法做,我这就不做多的演示了,要是求n(包含n)位前所有斐波那契数了,创建一个列表保存一下就好,希望大家可以去做一下,加深对列表方法的使用
#斐波那契数列:1,1,2,3,5,8,13,21,34,55.....
#从第三位开始:后一个数等于前面两数相加
n=int(input('请输入你要求第几位斐波那契数:'))
a=0
b=1
foriinrange(n):
#c=a
#a=b
#b=c+b
#上三式可以简写为:
a,b=b,a+b
print(a)
我这定义了一个函数去求n位数的水仙花数,不过水仙花数就是100-1000内个位十位百位3次方的和等于本身的数,我那只是类推一下,当然也可以不定义函数,直接使用input输入一个n或者直接给定n的值
defget_Narcissistic(n):
foriinrange(pow(10,n-1),pow(10,n)):
s=0
forjinrange(n):
s=s+pow(i//10**j%10,n)
ifi==s:
print(i)
get_Narcissistic(3)
#153
#370
#371
#407
用于理解循环的使用
#a=0
#whilea<9:
#a+=1
#b=0
#whileb<a:
#b+=1
#print(b,'*',a,'=',a*b,sep='',end='\t')#sep是分隔符默认是空格,\t是制表符
#print()
foriinrange(1,10):
forjinrange(1,i+1):
print(f'{j}*{i}={i*j}',end='\t')
print()
"""
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
"""
一匹大马能背3担货,一匹中马能背2担货,两匹小马能背1担货,如果用一百匹马背一百担货,有哪些不同的背法
foriinrange(34):#i代表大马的匹数
forjinrange(51):#j代表中马的匹数
ifi*3+j*2+(100-i-j)/2==100:
print(f'大马={i},中马={j},小马={100-i-j}')
#大马=2,中马=30,小马=68
#大马=5,中马=25,小马=70
#大马=8,中马=20,小马=72
#大马=11,中马=15,小马=74
#大马=14,中马=10,小马=76
#大马=17,中马=5,小马=78
#大马=20,中马=0,小马=80
输入一个数,先判断如果是400的倍数,则满足;如果不是400的倍数,再判断如果该数能够被4整除,却不能被100整除,则满足。
n=int(input('请输入年份:'))
ifn%400==0orn%4==0andn%100!=0:
print('{0}是闰年'.format(n))
else:
print('{0}不是闰年'.format(n))
高效方法:
python 的 calendar 库中已经封装好了一个方法 isleap() 来实现这个判断是否为闰年:
importcalendar
n=int(input("请输入年份:"))
year=calendar.isleap(n)
ifyear==True:
print("{0}是闰年".format(n))
else:
print("{0}不是闰年".format(n))
Python常见的基础算法题有哪些的详细内容,希望对您有所帮助,信息来源于网络。