19、编写一个程序,使用递归的方法来判断一个给定的数字是否为质数。以下代码片段展示了程序可能的运行方式:print(‘is_prime(3):’, is_prime(3)) # True print(‘is_prime(7):’, is_prime(7)) # True print(‘is_prime(9):’, is_prime(9)) # False print(‘is_prime(31):’, is_prime(31)) # True
def is_prime(n, divisor=2):
if n < 2:
return False
if divisor * divisor > n:
return True
if n % divisor == 0:
return False
return is_prime(n, divisor + 1)
print('is_prime(3):', is_prime(3))
print('is_prime(7):', is_prime(7))
print('is_prime(9):', is_prime(9))
print('is_prime(31):', is_prime(31))
在上述代码中,定义了一个递归函数 is_prime 来判断一个数是否为质数。函数接受两个参数, n 是要判断的数, divisor 是当前的除数,初始值为 2。
- 如果
n小于 2,直接返回False; - 如果
divisor的平方大于n,说明n是质数,返回True; - 如果
n能被divisor整除,说明n不是质数,返回False; - 否则,递归调用
is_prime函数,将divisor加 1 继续判断。
最后按要求打印出不同数字的判断结果。
20、编写一个函数,用于生成指定行数的帕斯卡三角形。帕斯卡三角形是由二项式系数组成的三角形。其数值生成规则如下:在第0行(即最顶层行),有一个唯一的非零项1。后续每一行的每个项都是由上一行中其左上方和右上方的数字相加得到的,空白项视为0。例如,第一行(或其他任何行)的第一个数字是1(0和1的和),而第三行的数字1和3相加得到第四行的数字4。例如,你的函数可以命名为pascals_triangle(),以下代码展示了如何使用它:triangle = pascals_triangle(5) for row in triangle: print(row) 其输出可能如下:[1] [1, 1] [1, 2, 1] [1, 3, 3, 1] [1, 4, 6, 4, 1]
以下是实现 pascals_triangle() 函数的Python代码:
def pascals_triangle(n):
triangle = []
for i in range(n):
row = [1] * (i + 1)
for j in range(1, i):
row[j] = triangle[i - 1][j - 1] + triangle[i - 1][j]
triangle.append(row)
return triangle
# 测试代码
triangle = pascals_triangle(5)
for row in triangle:
print(row)
这段代码定义了一个名为 pascals_triangle 的函数,它接受一个整数 n 作为参数,表示要生成的帕斯卡三角形的行数。函数内部使用一个循环来逐行构建帕斯卡三角形,对于每一行,先初始化所有元素为1,然后根据帕斯卡三角形的规则计算中间元素的值。最后返回生成的帕斯卡三角形。
21、添加一个选项,对用户输入的两个数字应用取模(%)运算符。这将涉及定义一个合适的函数,并将此选项添加到菜单中。你还需要扩展主计算器控制循环来处理这个选项。
以下是实现该功能的Python代码示例:
class Calculator:
def add(self, x, y):
return x + y
def subtract(self, x, y):
return x - y
def multiply(self, x, y):
return x * y
def divide(self, x, y):
if y == 0:
print('Error: Division by zero')
return None
return x / y
def modulus(self, x, y):
if y == 0:
print('Error: Modulus by zero')
return None
return x % y
while True:
print('Menu Options are:')
print('

最低0.47元/天 解锁文章
1061

被折叠的 条评论
为什么被折叠?



