美文网首页
day4-循环-homework

day4-循环-homework

作者: rzlong | 来源:发表于2018-08-23 20:59 被阅读0次
    1.读程序
    numbers=1  
    for i in range(0,20):  
        numbers*=2  
    print(numbers)  
    

    2^20

    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但是又不能被这两者整除的数 的个数

    3.求1到100之间所有数的和、平均值
    # for
    sum1 = 0
    mean1 = 0
    for n in range(1,101):
        sum1 += n
    mean1 = sum1/100 
    print('for: 1-100之间所有数的和:%d,平均值:%d' % (sum1,mean1))
    # while
    sum11 = 0
    mean11 = 0
    numa = 1
    while numa <= 100:
        sum11 += numa
        numa +=1
    mean11 = sum11/100
    print('while: 1-100之间所有数的和:%d,平均值:%.2f' % (sum11,mean11))
    
    结果:
    for: 1-100之间所有数的和:5050,平均值:50.50
    while: 1-100之间所有数的和:5050,平均值:50.50
    
    4.计算1-100之间能3整除的数的和
    # for
    sum2 = 0
    for n in range(1,101):
        if not n%3:
            sum2 += n
    print('for: 1-100之间能3整除的数的和:%d' % sum2)
    # while
    sum21 = 0
    num21 = 1
    while num21 <= 100:
        if not num21%3:
            sum21 += num21
        num21 += 1
    print('while: 1-100之间能3整除的数的和:%d' % sum21)
    
    结果:
    for: 1-100之间能3整除的数的和:1683
    while: 1-100之间能3整除的数的和:1683
    
    5.计算1-100之间不能被7整除的数的和
    # for
    sum3 = 0
    for n in range(1,101):
        if n%7:
            sum3 += n
    print('for: 1-100之间不能被7整除的数的和:%d' % sum3)
    # while
    sum31 = 0
    num31 = 1
    while num31 <= 100:
        if num31%7:
            sum31 += num31
        num31 += 1
    print('while: 1-100之间不能被7整除的数的和:%d' % sum31)
    
    结果:
    for: 1-100之间不能被7整除的数的和:4315
    while: 1-100之间不能被7整除的数的和:4315
    


    1.求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34......
    def fibonacci(n):
        fibonacci_list=[]
        if n == 1:
            fibonacci_list = [1]
        elif n == 2:
            fibonacci_list = [1,1]
        else:
            fibonacci_list = [1,1]
            for num in range(3,n+1):
                fibonacci_list.append(fibonacci_list[num-2]+fibonacci_list[num-3])
        print('斐波那契数列为:%s, 第%d个数的值: %d' % (str(fibonacci_list),n,fibonacci_list[n-1]))
    
    if __name__ == '__main__':
        fibonacci(8)
    
    结果:
    斐波那契数列为:[1, 1, 2, 3, 5, 8, 13, 21], 第8个数的值: 21
    
    2.判断101-200之间有多少个素数,并输出所有素数。判断素数的方法:用一个数分别除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数
    def prime_number(start,end):    
        prime_number_count = []
        for num in range(start,end+1):
            mark = 1 # mark = 1 是素数
            for n in range(2,num):
                if not num%n:
                    mark = 0
                    break
            if mark:
                prime_number_count.append(num)
        print('%d-%d之间的素数:%s, 共%d 个'%(start,end,str(prime_number_count),len(prime_number_count)))
    
    if __name__ == '__main__':
        prime_number(101,200)
    
    结果:
    101-200之间的素数:[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199], 共21 个
    
    3.打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个水仙花数,因为153 = 1^3 + 5^3 + 3^3
    def Narcissistic_number():
        Narcissistic_number_list = []
        for num in range(100,1000):
            one = num % 10 #个位
            decade = num // 10 % 10 #十位
            hundred = num // 100 #百位
            num_s = one**3 + decade**3 + hundred**3
            if num_s == num:
                Narcissistic_number_list.append(num_s)
        print('所有水仙花数:%s'% Narcissistic_number_list )
    
    if __name__ == '__main__':
        Narcissistic_number()
    
    结果:
    所有水仙花数:[153, 370, 371, 407]
    
    4.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的第20个分数分子:上一个分数的分子加分母 分母: 上一个分数的分子 fz = 2 fm = 1 fz+fm / fz
    def fractional_sequence(n):
        fz = 2
        fm = 1
        fractional = 0
        fractional_list = [2]
        for num in range(2,n+1):
                fractional = (fz + fm)/fz
                fractional_list.append(fractional)
                (fz, fm) = (fz+fm, fz) 
        print('分数序列:%s, 第%d个分数的值: %s'%(fractional_list,n,fractional_list[-1]))
    
    if __name__ == '__main__':
        fractional_sequence(20) # n > 1
    
    结果:
    分数序列:[2, 1.5, 1.6666666666666667, 1.6, 1.625, 1.6153846153846154, 1.619047619047619, 1.6176470588235294, 1.6181818181818182, 1.6179775280898876, 1.6180555555555556, 1.6180257510729614, 1.6180371352785146, 1.618032786885246, 1.618034447821682, 1.6180338134001253, 1.618034055727554, 1.6180339631667064, 1.6180339985218033, 1.618033985017358], 第20个分数的值: 1.618033985017358
    
    
    5.给一个正整数,要求:1、求它是几位数 2.逆序打印出各位数字
    def positive_integer(num):
        num_str = str(num)
        num_list = list(num_str)
        print('正整数是%d位数, 逆序打印: %s 或 %s' % (len(num_str),num_list[::-1],num_str[::-1]))
    
    if __name__ == '__main__':
        positive_integer(2589)
    
    结果:
    正整数是4位数, 逆序打印: ['9', '8', '5', '2'] 或 9852
    

    相关文章

      网友评论

          本文标题:day4-循环-homework

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