美文网首页
day4作业

day4作业

作者: HavenYoung | 来源:发表于2018-07-19 19:09 被阅读0次

基础

读程序,总结程序的功能:

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

解:
2的20次幂

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(包括100)的能够被3或7整除,并且不能被21整除的数的个数

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

sum1 = 0
for i in range(101):
    sum1 += i

print(sum1)
ave = sum1 / 100
print(ave)

结果:

5050
50.5

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

sum1 = 0
for i in range(101):
    if not i%3:
        sum1 += i

print(sum1)

结果:

1683

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

sum1 = 0
for i in range(101):
    if i%7:
        sum1 += i

print(sum1)

结果:

4315

6.有一对兔子,从出生后第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 = input('请输入要第几个月的兔子数:')
sum1 = 1
sum2 = 1
for i in range(3, int(n)+1):
    if 3 > int(n) >= 1:
        print('1')
    else:
        temp = sum1 + sum2
        sum1 = sum2
        sum2 = temp

print(temp)

结果:

请输入要第几个月的兔子数:6
8

递归:

def rabbits(n):
    if n<=2:
        return 1
    else:
        return rabbits(n-1)+rabbits(n-2)

n = input('请输入要第几个月的兔子数:')
print(rabbits(int(n)))

结果:

请输入要第几个月的兔子数:6
8

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

import math

list1 = []
for index1 in range(101, 200):
    num_sqrt = int(math.sqrt(index1))
    for index2 in range(2, num_sqrt+1):
        if not index1%index2:
            break
        elif index2==num_sqrt:
            list1.append(index1)

print(list1)

结果:

[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]

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

list1 = []
for num in range(100, 999):
    num_str = str(num)
    if num==int(num_str[0]) ** 3 + int(num_str[1]) ** 3 + int(num_str[2]) ** 3:
        list1.append(num)

print(list1)

结果

[153, 370, 371, 407]

9.有一分数序列: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

denominator = 1
numerator = 2
index = 1
flag = 20
while index!=flag:
    temp = denominator
    denominator = numerator
    numerator = temp + numerator
    index += 1

print(numerator, '/', denominator)

结果:

17711 / 10946

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

num = input('请输入一个整数:')

print('%s的长度是:%s'%(num,len(num)))
print('逆序输出为:', num[::-1])

结果:

请输入一个整数:12356
12356的长度是:5
逆序输出为: 65321

相关文章

网友评论

      本文标题:day4作业

      本文链接:https://www.haomeiwen.com/subject/dagtmftx.html