第十一章 练习。内附100道练习题URL

练习题一:有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

 

posted @ 2020-05-10 21:06  jerrygogo  阅读(283)  评论(0编辑  收藏  举报