美文网首页
Day4-作业

Day4-作业

作者: 晓晓的忍儿 | 来源:发表于2018-07-19 21:12 被阅读0次
    • 读程序,总结程序的功能:
    numbers=1 #变量
    for i in range(0,20): # 循环次数为20 i=0~19
         numbers*=2     # number=2**(i+1)
    print(numbers)
    

    答:本题输出结果为2的20次方,其功能是求2的n次方(n=1~20)

    改正:
    功能是求2的20次方
    注意:如果for中的变量不需要在循环体中使用,这个变量命名时可以用'_'命名

    for _ in range(20)
        print('==')
    
    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整除但不能被21整除的个数

    • 编程实现(for和while各写⼀遍):
    1. 求1到100之间所有数的和、平均值
    # for循环
    num=0
    sum1=0
    for x in range(1,101):
        sum1+=x
        num+=1
    print("1~100之间所有数的和=%d"%(sum1))
    print("1~100之间所有数的平均值=%f"%(sum1/num))
    

    结果:

    1~100之间所有数的和=5050
    1~100之间所有数的平均值=50.500000

    # while循环
    number=1
    sum1=0
    num=0
    while number<=100:
        sum1+=number
        number+=1
        num+=1
    print("1~100之间所有数的和=%d"%(sum1))
    print("1~100之间所有数的平均值=%f"%(sum1/num))
    
    

    结果:

    1~100之间所有数的和=5050
    1~100之间所有数的平均值=50.500000

    1. 计算1-100之间能3整除的数的和
    # for循环
    sum1=0
    for x in range(1,101):
        if x%3==0:
            sum1+=x
    print(sum1)
    
    #扩展 0-100能被3整除的数的和
    sum1=0
    for x in range(0,101,3):
        sum1+=x
    print(sum1)
    

    结果:

    1683
    1683

    #while循环
    sum1=0
    number=1
    while number<=100:
        if number%3==0:
            sum1+=number
        number+=1
    print(sum1)
    
    

    结果:

    1683

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

    结果:

    4315

    #while循环
    sum1=0
    number=1
    while number<=100:
        if number%7:
            sum1+=number
        number+=1
    print(sum1)
    

    结果:

    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
    import random
    number1=1
    number2=1
    mon=random.randint(1,12)
    num=1
    while num<=mon:
        if num<=2:
            number1=1
        else:
            # number1,number2=number1+number2,number1
            number3=number1
            number1+=number2
            number2=number3
        num+=1
    print('第%d月共有兔子%d只'%(mon,number1))
    

    结果

    第11月共有兔子89只

    1. 判断101-200之间有多少个素数,并输出所有素数。判断素数的⽅法:⽤⼀个数分别除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数
    # 没用break:
    import math
    number1=True
    number2=0
    for x in range(101,200):
        number1=True
        for y in range(2,int(math.sqrt(x))+1):
            if x%y==0:
                number1=False;break
        if number1:
            number2+=1; print('素数%d'%(x))
    print(number2)
        
    

    结果:

    素数101
    素数103
    素数107
    素数109
    素数113
    素数127
    素数131
    素数137
    素数139
    素数149
    素数151
    素数157
    素数163
    素数167
    素数173
    素数179
    素数181
    素数191
    素数193
    素数197
    素数199
    21

    1. 打印出所有的⽔仙花数,所谓⽔仙花数是指⼀个三位数,其各位数字⽴⽅和等于该数本身。例如:153是
      ⼀个⽔仙花数,因为153 = 1^3 + 5^3 + 3^3
    for number in range(100,1000):
        num1=number//100
        num2=(number%100)//10
        num3=number%10
        num4=num1**3+num2**3+num3**3
        if num4==number:
            print('%d是水仙花'%(number))
    

    结果:

    153是水仙花
    370是水仙花
    371是水仙花
    407是水仙花

    1. 有⼀分数序列: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
    mul1=1 # 分子
    mul2=1 # 分母
    num1=1
    while num1<=20:
        mul3=mul1
        mul1+=mul2 #分子
        mul2=mul3 #分母
        # mul1, mul2 = mul1 + mul2, mul1
        num1+=1
    print('%d/%d'%(mul1,mul2))
    
    

    结果

    17711/10946

    1. 给⼀个正整数,要求:1、求它是⼏位数 2.逆序打印出各位数
    import random
    number=random.randint(100,10000)
    print(number)
    for x in range(1,100):
        if number//10**x:
            pass
        else:
            print('他是%d位数'%(x))
            break
    chr=str(number)
    for x in range(len(chr),0,-1):
        print(chr[x])
    
    
    简单的一种:
    import random
    number=random.randint(100,10000)
    print(number)
    chr=str(number)
    long=len(chr)
    print('他是%d位数'%(long))
    for x in range(len(chr),0,-1):
        print(chr[x-1])
    

    结果:

    7939
    他是4位数
    9
    3
    9
    7
    简单的一种:
    4504
    他是4位数
    4
    0
    5
    4

    相关文章

      网友评论

          本文标题:Day4-作业

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