循环作业

  1. 求1到100之间所有数的和、平均值
    for循环
sum=0
for i in range(1,101):
    sum+=i 
sum1=sum/2
print(sum1)
结果:2525.0

while循环

sum=0
i=1
while i <=100:
    sum+=i 
    i+=1
sum1=sum/2
print(sum1) 
结果:2525.0
  1. 计算1-100之间能3整除的数的和
    for循环
sum=0
for i in range(1,101):
    if i%3==0:
        sum+=i
print(sum)
结果:1683

while循环

sum=0
i=1
while i<=100:
    if i%3==0:
        sum+=i
    i+=1
print(sum)
  1. 计算1-100之间不能被7整除的数的和
    for循环
sum=0
for  i in range(1,101):
    if not i%7==0:
        sum+=i
print(sum)
结果:4315

while循环

sum=0
i=1
while  i<=100:
    if not i%7==0:
        sum+=i
    i+=1
print(sum)
结果:4315
  1. 有一对兔子,从出生后第3个月起,每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第n个月的兔子总共有多少?
    规律: 第一个月和第二个月的数量都是1 从第三个月开始 n =( n-1) + (n-2)
    1,1,2,3,5,8,13,21...n?
    1 1
    2 1
    3 2 = 1+1
    4 3 = 1+2
    5 5 = 2+3
    6 8 = 3+5
    n 第(n-1)+第(n-2)
    n = n1 + n2
    n==3 n1=1,n2=1 n=n1+n2=2
    n==4 n1 = n2 n2 = n n = n1+n2
n=7
pre_1=1
pre_2=1
current=0
for x in range(1,n+1):
    if x==1 or x==2:
        current=1
        continue
    current=pre_1+pre_2
    pre_1,pre_2=pre_2,current
print('第%d个数是%d'%(n,current))
    结果:第7个数是13

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

i=100
while i>=100 and i<1000:
    a=(i%10)**3
    b=(i//10%10)**3
    c=(i//100)**3
    if a+b+c==i:
        print(i)
    i+=1
结果:
153
370
371
407

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

1 2 1

2 3 2

3 5 3

4 8 5

分子:上一个分数的分子加分母 分母: 上一个分数的分子

fz = 2 fm = 1

fz+fm / fz

fz=2
fm=1
for i in range(1,21):
    if i == 1:
        print('%d/%d' % (fz, fm))
        continue
    fz,fm=fz+fm,fz
    print('%d/%d'%(fz,fm))
结果:2/1
3/2
5/3
8/5
13/8
21/13
34/21
55/34
89/55
144/89
233/144
377/233
610/377
987/610
1597/987
2584/1597
4181/2584
6765/4181
10946/6765
17711/10946

7.给一个正整数,要求:1、求它是几位数 2.逆序打印出各位数字

import random
number=random.randint(0,100000)
number1=str(number)
print(number1)
print(len(number1))
print(number1[::-1])
结果:26894
5
49862

8.判断101-到200之间有多少个素数,并输出

for number in range(101,201):
    count=0
    for x in range(2,number):
        if number % x == 0:
            count+=1
            break
    if count==0:
        print('%d是素数'%number)
结果:151是素数
157是素数
163是素数
167是素数

你可能感兴趣的:(循环作业)