Day-004 分支结构、循环作业

基础题

  1. 根据输入的成绩打印及格 或者不及格
score = int(input('请输入你的成绩:')) # 99
if score >= 60:
    print('及格')
else:
    print('不及格')

# 运行结果
'''
及格
'''
  1. 根据输入的年纪范围打印成年或者未成年,如果年龄不在正常范围内(0~150)打印这不是人!
age = int(input('请输入你的年龄:')) # 151
if 0 <= age < 18:
    print('未成年')
elif 18 <= age <= 150:
    print('成年')
else:
    print('这不是人!')

# 运行结果
'''
这不是人!
'''
  1. 输入两个整数a和b,若a-b的结果为奇数,则输出该结果,否则输出提示信息a-b的结果不是奇数
a = int(input('请输入第一个整数:')) # 7
b = int(input('请输入第二个整数:')) # 5
if (a - b) % 2 == 0:
    print(a, '-', b, '的结果不是奇数', sep='')
else:
    print(a-b)

# 运行结果
'''
7-5的结果不是奇数
'''
  1. 使用for循环输出 0~100内所有3的倍数。
for i in range(0, 101, 3):
    if i != 0:
        print(i, end='  ')

# 运行结果
'''
3  6  9  12  15  18  21  24  27  30  33  36  39  42  45  48  51  54  57  60  63  66  69  72  75  78  81  84  87  90  93  96  99
'''
  1. 使用for循环输出100~200内个位数或者十位数能被3整除的数。
for i in range(100, 201):
    s = i % 10
    t = i // 10 % 10
    if s % 3 == 0 and s != 0:
        print(i, end='  ')
    elif t % 3 == 0 and t != 0:
        print(i, end='  ')

# 运行结果
'''
103  106  109  113  116  119  123  126  129  130  131  132  133  134  135  136  137  138  139  143  146  149  153  156  159  160  161  162  163  164  165  166  167  168  169  173  176  179  183  186  189  190  191  192  193  194  195  196  197  198  199 
'''
  1. 使用for循环统计100~200中十位数是5的数的个数
count = 0
for i in range(100, 201):
    if (i // 10 % 10 == 5):
        count += 1
print('100~200中十位数是5的数有', count, '个') 

# 运行结果
'''
100~200中十位数是5的数有 10 个
'''
  1. 使用for循环打印50~150中所有能被3整除但是不能被5整除的数
for i in range(50,151):
    if i % 3 == 0 and i % 5 != 0:
        print(i, end='  ')

# 运行结果
'''
51  54  57  63  66  69  72  78  81  84  87  93  96  99  102  108  111  114  117  123  126  129  132  138  141  144  147 
'''
  1. 使用for循环计算50~150中所有能被3整除但是不能被5整除的数的和
sum = 0
for i in range(50,151):
    if i % 3 == 0 and i % 5 != 0:
        sum += i
print('50~150中所有能被3整除但是不能被5整除的数的和为:', sum)

# 运行结果
'''
50~150中所有能被3整除但是不能被5整除的数的和为: 2682
'''
  1. 统计100以内个位数是2并且能够被3整除的数的个数。
count = 0
for i in range(101):
    if i % 10 == 2 and i % 3 == 0:
        count += 1
print('100以内个位数是2并且能够被3整除的数有', count, '个')

# 运行结果
'''
100以内个位数是2并且能够被3整除的数有 3 个
'''

进阶题

  1. 输入任意一个正整数,求他是几位数?

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

num = int(input('请输入任意一个正整数:')) # 6485645785766249
n = 0

while num // 10**n != 0:
        n += 1
print(num, '是', n, '位数')

# 运行结果
'''
6485645785766249 是 16 位数
'''
  1. 打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如:153是⼀个⽔仙花数,因为 1³ + 5³ + 3³ 等于 153。
print('水仙花数有:', end='')
for i in range(100,1000):
    s = i % 10
    t = i // 10 % 10
    h = i // 100
    if s**3 + t**3 + h**3 == i:
        print(i, end='  ')

# 运行结果
'''
水仙花数有:153  370  371  407  
'''
  1. 判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)
num = int(input('请输入一个正整数: ')) # 59
result = True
for i in range(2, int(num**0.5)+1):
    if num % i == 0:
        result = False
        # break
if result == True:
    print(num, '是素数')
else:
    print(num, '不是素数')

# 运行结果
'''
59 是素数
'''
  1. 输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
for i in range(1,10):
    for j in range(1, i+1):
        print(j, '×', i, '=', i*j, sep='', end=' ')
    print()

# 运行结果
'''
1×1=1 
1×2=2 2×2=4 
1×3=3 2×3=6 3×3=9 
1×4=4 2×4=8 3×4=12 4×4=16 
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25 
1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36 
1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49 
1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64 
1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81 
'''
  1. 这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?(可以直接使用穷举法)
goods = totle = 100
for small in range(0,101,2):
    for middle in range(totle//2):
        for large in range(totle//3):
            if large*3 + middle*2 + small*0.5 == 100 and large + middle + small == 100:
                print(large, middle, small)

# 运行结果
'''
2 30 68
5 25 70
8 20 72
11 15 74
14 10 76
17 5 78
20 0 80
'''
for large in range(totle//3+1):
    for middle in range(totle//2+1):
        small = 100 - large - middle
        if small % 2 != 0:
            continue
        if large*3 + middle*2 + small*0.5 == 100 and large + middle + small == 100:
            print(large, middle, small)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值