✏️ 课堂习题

第 4 章 · 循环结构 · 共 8 题 · 内容覆盖讲稿全部知识点

答案默认折叠,点击题目或右侧开关控制显示
展开所有答案
1
使用 for-in 循环,计算 1 到 100 之间所有奇数的和。
参考答案
python
total = sum(range(1, 101, 2))
print(f"1到100奇数之和:{total}")  # 2500
2
输出 1 到 100 之间所有能被 3 整除但不能被 5 整除的整数。
参考答案
python
for i in range(1, 101):
    if i % 3 == 0 and i % 5 != 0:
        print(i, end=' ')
3
输入一个正整数 n,计算 n 的阶乘(n!)。
示例:输入 5,输出 120
参考答案
python
n = int(input("请输入正整数n:"))
result = 1
for i in range(1, n + 1):
    result *= i
print(f"{n}! = {result}")
4
打印九九乘法表(下三角形式)。
参考答案
python
for i in range(1, 10):
    for j in range(1, i + 1):
        print(f'{i}×{j}={i * j}', end='\t')
    print()
5
输出 100 以内所有的素数(质数)。
参考答案
python
for num in range(2, 101):
    is_prime = True
    for i in range(2, int(num ** 0.5) + 1):
        if num % i == 0:
            is_prime = False
            break
    if is_prime:
        print(num, end=' ')
6
输入两个正整数,求它们的最大公约数和最小公倍数。
提示:最小公倍数 = 两数之积 ÷ 最大公约数
参考答案
python
x = int(input('x = '))
y = int(input('y = '))
product = x * y
# 欧几里得算法求最大公约数
a, b = x, y
while b % a != 0:
    a, b = b % a, a
gcd = a
lcm = product // gcd
print(f'最大公约数: {gcd}')
print(f'最小公倍数: {lcm}')
7
输出所有的水仙花数(三位数,各位数字的立方和等于该数本身)。
参考答案
python
for num in range(100, 1000):
    bai = num // 100
    shi = num // 10 % 10
    ge  = num % 10
    if bai ** 3 + shi ** 3 + ge ** 3 == num:
        print(num)
8
百钱百鸡问题:公鸡5元/只,母鸡3元/只,小鸡1元/3只,100元买100只鸡,分别各买几只?
参考答案
python
for i in range(0, 21):      # 公鸡
    for j in range(0, 34):  # 母鸡
        k = 100 - i - j     # 小鸡
        if 5 * i + 3 * j + k / 3 == 100:
            print(f"公鸡:{i}  母鸡:{j}  小鸡:{k}")