1. 组合与排列问题
题目1:三位数的组成
问题描述:计算由1、2、3、4组成的互不相同且无重复数字的三位数数量及其数值范围。
解析:这是一个典型的排列问题,可以使用Python的itertools模块中的permutations
函数来生成所有可能的排列,然后计算其数量。
代码示例:
from itertools import permutations
# 生成所有排列
perms = permutations([1, 2, 3, 4], 3)
# 计算数量并输出范围
count = 0
for perm in perms:
count += 1
print(f"{perm[0]}{perm[1]}{perm[2]}")
print(f"Total count: {count}")
答案:共有24个互不相同且无重复数字的三位数,其数值范围为123到432。
2. 利润与百分比计算
题目2:计算奖金提成
问题描述:编写一个函数,根据企业利润的不同区间计算奖金提成。
解析:这是一个涉及条件分支和多级计算的问题。我们可以定义一个函数,根据利润的不同区间返回相应的奖金比例。
代码示例:
def calculate_bonus(profit):
if profit < 10000:
return profit * 0.1
elif profit < 50000:
return profit * 0.2
else:
return profit * 0.3
# 示例
print(calculate_bonus(20000)) # 输出应为4000
答案:根据不同的利润区间,奖金提成比例分别为10%、20%和30%。
3. 数论与数学游戏
题目3:寻找符合条件的整数
问题描述:寻找加上100后是完全平方数的整数。
解析:这个问题可以通过遍历整数并检查其加100后是否为完全平方数来解决。
代码示例:
import math
for i in range(1, 1000):
if math.isqrt(i + 100) ** 2 == i + 100:
print(i)
答案:例如,当i为49时,49加100等于149,是7的平方。
4. 日期计算
题目4:找出输入日期是当年的第几天
问题描述:给定一个日期,找出它是当年的第几天。
解析:可以使用Python的datetime模块来获取日期信息,并计算它是一年中的第几天。
代码示例:
from datetime import datetime
def day_of_year(date_str):
date = datetime.strptime(date_str, "%Y-%m-%d")
return date.timetuple().tm_yday
# 示例
print(day_of_year("2025-06-03")) # 输出应为154
答案:输入日期是当年的第154天。
5. 排序与比较
题目5:按顺序输出三个整数
问题描述:按顺序输出三个整数,这涉及基本的排序算法和列表操作。
解析:我们可以使用Python的内置函数sorted
来对整数进行排序。
代码示例:
numbers = [3, 1, 2]
print(sorted(numbers)) # 输出应为[1, 2, 3]
答案:输出为排序后的整数列表[1, 2, 3]。
6. 图形与字符输出
题目6:输出特定图案
问题描述:使用星号(*)输出一个特定的图案。
解析:这是一个字符串处理和控制台输出的问题,我们可以使用嵌套循环来打印所需的图案。
代码示例:
for i in range(5):
for j in range(i + 1):
print("*", end=" ")
print()
答案:输出一个直角三角形图案。
7. 基础数学和字符串处理
题目7:输出九九乘法表
问题描述:输出九九乘法表。
解析:我们可以使用嵌套循环来生成九九乘法表。
代码示例:
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j}x{i}={i * j}", end="\t")
print()
答案:输出标准的九九乘法表。
8. 二维图形和游戏设计
题目8:输出国际象棋棋盘
问题描述:输出国际象棋棋盘。
解析:这是一个涉及二维图形和字符输出的问题,我们可以使用嵌套循环来打印棋盘。
代码示例:
for i in range(8):
for j in range(8):
if (i + j) % 2 == 0:
print("B", end=" ")
else:
print("W", end=" ")
print()
答案:输出一个黑白相间的国际象棋棋盘。
9. 数值与逻辑判断
题目9:查找101-200之间的素数
问题描述:查找101-200之间的素数。
解析:我们可以使用试除法来判断一个数是否为素数,并遍历101-200之间的数来查找素数。
代码示例:
def is_prime(num):
if num <= 1:
return False
for i in range(2, int(math.sqrt(num)) + 1):
if num % i == 0:
return False
return True
primes = [num for num in range(101, 201) if is_prime(num)]
print(primes)
答案:输出101-200之间的所有素数列表。
10. 数学特性识别
题目10:识别水仙花数
问题描述:识别水仙花数。
解析:水仙花数是一个三位数,其各位数字的立方和等于它本身。我们可以遍历所有的三位数来识别水仙花数。
代码示例:
for num in range(100, 1000):
if num == sum(int(digit) ** 3 for digit in str(num)):
print(num)