day4-循环作业

1. 基础题

  1. 输入年份,如果输入的年是闰年打印'闰年'否则打印'平年'

    year = 2001
    if year % 4 == 0 and year % 100 != 0:
        print('普通闰年')
    elif year % 4 == 0 and year % 100 == 0:
        print('世纪闰年')
    else:
        print('平年')
    
  2. 使用for和while循环输出 0~100内所有3的倍数。

    for num in range(0, 101, 3):
        print(num)
    
    x = 0
    while True:
        print(x)
        x += 3
        if x > 100:
            break
    
  3. 使用for和while循环输出100~200内个位数或者十位数能被3整除的数。

    for num in range(100, 201):
        if num % 10 % 3 == 0 or num % 100 // 10 % 3 == 0:
            print(num)
    
    x = 100
    while True:
        if x % 10 % 3 == 0 or x % 100 // 10 % 3 == 0:
            print(x)
        x += 1
        if x > 200:
            break
    
  4. 使用for和while循环统计100~200中十位数是5的数的个数

    count = 0
    for num in range(100, 201):
        if num % 100 // 10 == 5:
            count += 1
    print(count)
    
    x = 100
    count1 = 0
    while True:
        if x % 100 // 10 == 5:
            count1 += 1
        x += 1
        if x > 200:
            break
    print(count1)
    
  5. 使用for和while循环打印50~150中所有能被3整除但是不能被5整除的数

    for num in range(50, 151):
        if num % 3 == 0 and num % 5 != 0:
            print(num)
    
    x = 50
    while True:
        if x % 3 == 0 and x % 5 != 0:
            print(x)
        x += 1
        if x > 150:
            break
    
  6. 使用for和while循环计算50~150中所有能被3整除但是不能被5整除的数的和

sum1 = 0
for num in range(50, 151):
    if num % 3 == 0 and num % 5 != 0:
        sum1 += num
print(sum1)

sum2 = 0
x = 50
while True:
    if x % 3 == 0 and x % 5 != 0:
        sum2 += x
    x += 1
    if x > 150:
        break
print(sum2)

2. 进阶题

  1. 使用循环计算1*2*3*4*...*10的结果。

    pro1 = 1
    for num in range(1, 11):
        pro1 *= num
    print(pro1)
    
    pro2 = 1
    x = 1
    while True:
        pro2 *= x
        x += 1
        if x > 10:
            break
    print(pro2)
    
  2. 统计100以内个位数是2并且能够被3整除的数的个数。

    count = 0
    for num in range(101):
        if num % 10 == 2 and num % 3 == 0:
            count += 1
    print(count)
    
    count1 = 0
    x = 0
    while True:
        if x % 10 == 2 and x % 3 == 0:
            count1 += 1
        x += 1
        if x > 100:
            break
    print(count1)
    
  3. 输入任意一个正整数,求他是几位数?

    注意: 这儿不能使用字符串,只能用循环

    int1 = int(input('请输入一个正整数:'))
    n = 0
    while int1 != 0:
        int1 //= 10
        n += 1
    print('这是一个', n, '位数', sep='')
    
  4. 打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字次方和等于该数本身。例如:153是 一个水仙花数,因为 1³ + 5³ + 3³ 等于 153。

    for num in range(100, 1000):
        if num == (num % 10) ** 3 + (num % 100 // 10) ** 3 + (num // 100) ** 3:
            print(num)
    
    x = 100
    while True:
        if x == (x % 10) ** 3 + (x % 100 // 10) ** 3 + (x // 100) ** 3:
            print(x)
        x += 1
        if x > 999:
            break
    

3. 挑战题

  1. 判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)

    n = int(input('输入一个数:'))
    if n <= 1:
        print('不是质数')
    else:
        for num in range(2, int(n ** 0.5) + 1):
            if n % num == 0:
                print('不是质数')
                break
        else:
            print('是质数')
    
  2. 求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34… (这儿的n可以是任意正整数,可以通过输入来确定)

  3. 输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

  4. 这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?(可以直接使用穷举法)

上一篇:day4-循环作业


下一篇:mysql day4:表操作,数据的增删改,使用视图