美文网首页
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