✏️ 课堂习题
第 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
示例:输入 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}")