11.古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
#分析:这是一个斐波那契数列
def fib(num):
a,b=0,1
for x in range(num):
a,b=b,a+b
print(f"第{num}月共有{a}对兔子")
month = int(input("请输入你想要查询的兔子总数的月份:"))
fib(month)
12.判断101-200之间有多少个素数,并输出所有素数
#只能被常数1或自己整除,不能被其他整数整除的正整数。
count = 0
for x in range(101,201):
flag = 0
for y in range(2,x):
if x%y==0:
flag =1
break
if flag==0:
count +=1
print(x)
print(f"素数的数量共有:{count}")
13.打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
#思维量小,但时间复杂度过高
for x in range(1,10):
#这里x位于百位数位置上,所以不能为0,这是要确保它是三位数,而y,z找到取值就可以是0
for y in range(10):
for z in range(10):
if 100*x+y*10+z == x*x*x+y*y*y+z*z*z:
print(f"{x}{y}{z}")
14.将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
num = int(input("请输入要分解的正整数:"))
while(True):
print("该正整数可分解为:", end="")
#从2开始一直到num开始循环,一个一个的试探能不能整除
for x in range(2,num+1):
#这里表示经过一系列整除之后,得到的数和要整除的数相同,这代表因子已经找完了,这是最后一个
if x == num:
print(f"{x}", end="")
break
#如果数字可以被x整除,那么它就是其中一个因子
elif num % x == 0:
num = num / x
print(f"{x}*", end="")
#这里考虑到如果有好几个相同的因子
while(True):
#这里表示确实有多个相同因子
if num%x ==0:
print(f"{x}*", end="")
num = num/x
else:
break
break
15.利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
score = float(input("请输入学生成绩:"))
if score>=90:
print(f"该学生的等级为A")
elif 60<=score<90:
print(f"该学生的等级为B")
else:
print(f"该学生的等级为C")