练习题一:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
for i in range(1,5): for j in range(1,5): for k in range(1,5): if i!=j and i!=k and j!=k: print(i,j,k)
https://www.jianshu.com/p/aa32dc576310
练习题二:判断质数:
""" 质数是大于1且除了1和自身以外,不能被其他自然数整除,即x%y!=0,这个不等式隐藏一个条件:y<x. 如果y>x,其商为小数,而非整数。所以,被除数 y 的范围是(2,x) """ x = int(input("type a number:")) if x>1: for i in range(2,x): if x%i==0: print("x is not prime") print(i,"*", x//i, "=",x) break else: print("x is prime") else: print("x is not prmie")
练习三:1~100的质数:
prime = [] for i in range(2,101): for j in range(2,i): if i%j==0: break else: prime.append(i) print(prime)
练习四:求最大公约数:
def gcd(x,y): while y:#只要不等于0,就一直循环。 x,y=y,x%y return x print(gcd(42,56))
练习五:阶乘:递归函数实现。
def f(n): if n==1: return 1 return n*f(n-1) print(f(5))
练习六:斐波拉契数列:递归函数实现
#递归函数实现斐波拉契数列 def fib(n): if n<=1: return n return (fib(n-1)+fib(n-2)) for i in range(10): print(fib(i))
l练习七:约瑟夫生死者
people = list(range(1,31))
#统计下船的人数 dropped = 1
while dropped<16:#下船15人 print("下船的人:",people[8])#index=8的下船
#船上的人始终是[0:index]+[(index+1): ]
people = people[9:]+people[0:8]
dropped +=1