12-28作业

1.读这段程序

numbers=1
for i in range(0,20):
 numbers*=2
print(numbers)   

1求20个2相乘的积。2**20
2.当i取值0时,numbers = numbers *2,numbers = 1乘2
3.当i取值1时,numbers = numbers *2,numbers = 2乘2
……
4.当i取值19时,numbers = numbers *2,numbers = numbers乘2

2. 读这段程序

summation=0
num=1
while num<=100:
 if (num%3==0 or num%7==0) and num%21!=0:
 summation += 1
 num+=1
print(summation)

1.100以内,能被3整除或被7整除时,同时不能整除21的数的个数
2.当num<=100时,如果num能被3整除或被7整除时,同时不能整除21时;则summation = summation + 1 ;num = num + 1.
3.当 num =101时, 循环条件为False,结束循环。
4.打印summation的值

3.编程

1.for 求1到100之间所有数的和、平均值

num = 0
cishu = 0
for numcs in range(2, 100):
    num += numcs
    cishu += 1
    juz = num / cishu
print('1-100之间数的和是:%d;平均值等于%.1f' % (num, juz))

1.while 求1到100之间所有数的和、平均值

num = 0
cishu = 0
dijc = 2
while dijc < 100:
    num = dijc + num
    dijc += 1
    cishu += 1
    juz = num / cishu
print('1-100之间数的和是:%d;平均值等于%.1f' % (num, juz))

2.for 计算1-100之间能3整除的数的和

he = 0
for cisu in range(2, 100):
    if cisu % 3 == 0:
        he += cisu
print('和是:%d' % he)

2.while 计算1-100之间能3整除的数的和

he = 0
cisu = 2
while cisu <= 99:
    if cisu % 3 == 0:
        he += cisu
    cisu += 1
print('和是:%d' % he)

3.for 计算1-100之间不能被7整除的数的和

he = 0
for cis in range(2,100):
    if cis % 7 != 0:
        he += cis
    cis += 1
print('和是:%d' % he) ####4214

3.while 计算1-100之间不能被7整除的数的和

he = 0
cisu = 2
while cisu <= 99:
    if cisu % 7 != 0:
        he += cisu
    cisu += 1
print('和是:%d' % he) ####4214

稍微困难

1. F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2) 后一个数 = 前两个数的和

list3 = [1, 1]
xh = 0
num = int(input('请输入你要找的斐波那契数列位数:'))
if num <= 2:
    print('结果为:1')
elif num > 2:
    for x in range(0, num):  # 位数是多少就运行多少次
        listxuh = int(list3[x]) + int(list3[x + 1])
        list3.append(listxuh)
        xh += 1
        if xh == num:
            jig = list3[xh - 1]
            print('结果是:%d' % jig)

2.判断101-200之间有多少个素数,并输出所有素数。判断素数的方法:用一个数分别除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数

listjg = []
for num2 in range(101, 201, 2):
    h = 2
    for num3 in range(2, num2):
        num = num2 % num3
        h += 1
        if num == 0:
            break
        elif h >= num2 and num != 0:
            listjg.append(num2)
print(len(listjg))
print('素数列表:', listjg)

3. 打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153是个水仙花数,因为153 = 1^3 + 5^3 + 3^3 111---999

list2 = []
for x in range(111, 1000):
    gw = x % 10
    sw = x // 10 % 10
    bw = x // 100
    if x == gw ** 3 + sw ** 3 + bw ** 3:
        list2.append(x)
print('水仙花数:', list2)

4.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的第20个分数分数⼦

  1. 分子:上一个分数的分子加分母
  2. 分母: 上一个分数的分子 fz = 2 fm = 1 fz+fm / fz
    a. 分子 2 3 5 8 13 21
    a. 分母 1 2 3 5 8 13
fz = [2]
fm = [1]
for x in range(0, 20):
    fm.append(fz[x])
    fz.append(fz[x] + fm[x])
print('%d/%d' % (fz[19], fm[19]))

你可能感兴趣的:(12-28作业)