Day04-课后作业

比较简单

  1. 求1到100之间所有数的和、平均值
sum=0
average=0
for x in range(1,100):
    sum+=x
    average=sum/100
print(sum,average)  #4950 49.5
  1. 计算1-100之间能3整除的数的和
sum=0
for x in range(1,100):
    if x % 3 ==0:
        sum+=x
print(sum) #1683

  1. 计算1-100之间 能被7整除的数的和
sum=0
for x in range(1,100):
    if x % 7 ==0:
        sum+=x
print(sum)  #735

稍微困难:

  1. 求斐波那契数 中第n个数的值:1,1,2,3,5,8,13,21,34....
    方法一:函数嵌套
def fibo(n):
    if n==1 or n==2: 
        return 1
    else:
        return fibo(n-1)+fibo(n-2)
print(fibo(7)) #13

方法二:循环

n=7
if n==1 or n==2:fibo=1
fibo1=1;fibo2=1
for x in range(3,n+1):
    fibo=fibo1+fibo2
    temp=fibo2
    fibo2=fibo
    fibo1=temp
print(fibo) #13
  1. 判断101-200之间有多少个素数,并输出所有素数。判断素数的 法: 个数分别除2到sqrt(这个数),如果能被整除,则表明此数 是素数,反之是素数
sushu=[]
for x in range(101,200):
    for i in range(2,x):
        if x % i ==0:break
    else:
        sushu.append(x) 
print(len(sushu),sushu)
#21 [101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199] 
  1. 打印出所有的 仙花数,所谓 仙花数是指 个三位数,其各位数字 和等于该数本身。 如:153是个 仙花数,因为153 = 1^3 + 5^3 + 3^3
for x in range(100,1000):
    x=str(x)
    if int(x)==sum(map(lambda y:y**3,map(int,x))):print(x)
#153 370 371 407
  1. 有 分数序 :2/1,3/2,5/3,8/5,13/8,21/13...求出这个数 的第20个分数
    分 :上 个分数的分 加分 分 : 上 个分数的分 fz = 2 fm = 1 fz+fm / fz
n=20
num1=2;num2=1
for x in range(1,n):
    temp=num1
    num1=num1+num2
    num2=temp
print(str(num1)+'/'+str(num2))  #17711/10946
  1. 给 个正整数,要求:1、求它是 位数 2.逆序打印出各位数字
num=123456
print(len(str(num)),str(num)[::-1])

你可能感兴趣的:(Day04-课后作业)