单击题目,直接跳转到页面刷题,一周后公布答案。
- 229:函数参数打印信息
- 185:判断质数(使用函数)
- 188:前N个自然数之和
- 69:特定两数之和
- 235:递归求一个数的阶乘
- 26:求第N个斐波那契数
- 237:递归计算一个数的幂
1. 229:函数参数打印信息
编写一个函数来打印联系人信息。
步骤 1:
创建函数 display_info()。
函数有两个参数:name(名字) 和 location(地区)。
在两行中分别打印 name 和 location。
步骤 2:
在函数外部:
输入一个字符串,并赋值给country变量。
分别用字符串’Taylor’(名字) 和 变量country 作为参数,调用display_info() 函数。
示例输入
USA
示例输出
Taylor
USA
参考源码
def display_info(name, location):print(name)print(location)# 获取用户输入
country = input()# 用 'Taylor' 和 country 作为参数调用函数
display_info('Taylor', country)
2. 185:判断质数(使用函数)
编写一个函数:判断一个数字是否是质数。
质数是指只被1或其本身除以的数字。例如,7,5,19,等等。
定义一个名为check_prime()的函数。
在该函数中,创建flag变量,其值为0,并从2到 number - 1 运行一个循环,判断 number 是否能被2 到 number - 1 之间的任何数字所除。
如果数字可以被整除,将flag变量设置为1。
在循环外,如果flag是1,打印非质数。否则,打印 质数。
在函数之外,为number变量获取一个整数输入。
调用该函数,并将number作为一个参数传递。
输入格式
一个整数
示例输入
7
示例输出
质数
参考源码
# 定义check_prime()的函数
def check_prime(n):flag = 0# 循环for i in range (2, int(n**0.5) + 1):# 判断 i是否能整除 number# 如果能整除,将flag设置为1if n % i == 0:flag = 1# 根据flag的值,判断是否是质数return flagnumber = int(input())# 调用函数
if check_prime(number):print("非质数")
else:print("质数")
3. 188:前N个自然数之和
编写一个函数:计算前N个自然数的和。
定义find_sum()的函数,以数字n作为参数。
在该函数中,计算从1到n的数字之和,并返回。
在函数外部,为变量number获得一个整数输入。
调用该函数并将number作为参数传递,打印返回值。
输入格式
一个整数
示例输入
9
示例输出
45
参考源码
# 定义`find_sum()`的函数,以`n`作为参数。
def find_sum(n):return n * (n+1) // 2number = int(input())# 调用该函数并将`number`作为参数传递,并打印返回值。
print(find_sum(number))
4. 69:特定两数之和
编写一个程序,检查列表是否存在两数字之和等于给定的数。
定义函数is_sum_present(),它接受两个参数 - 一个数字列表num_list和一个数字target_sum。
在函数内,检查列表中的每对数字。如果任意一对数字的和等于target_sum,则返回True。否则,返回False。
示例输入
2 3 7 8 11
14
示例输出
True
解释:
由于我们的目标数是14,而我们列表中的[11, 3]是两个数字,它们相加等于14,因此输出为True。
参考源码1
def is_sum_present(num_list, target_sum):# 此处编写代码n = len(num_list)for i in range(n):for j in range(i+1, n):if num_list[i] + num_list[j] == target_sum:return Truereturn False# 获取输入
num_list = list(map(int, input().split()))
target_sum = int(input())# 调用函数
print(is_sum_present(num_list, target_sum))
参考源码2
参考源码1使用双层for循环,其时间复杂度为O(n^2)。考虑优化:先排序,然后使用双指针扫描,速度更快。排序的时间复杂度为O(nlogn),双指针扫描的时间复杂度为O(n)。
def is_sum_present(num_list, target_sum):# 此处编写代码num_list.sort()i = 0j = len(num_list) - 1while i < j: # 双指针if num_list[i] + num_list[j] == target_sum:return Trueelif num_list[i] + num_list[j] < target_sum:i += 1else:j -= 1return False# 获取输入
num_list = list(map(int, input().split()))
target_sum = int(input())# 调用函数
print(is_sum_present(num_list, target_sum))
5. 235:递归求一个数的阶乘
编写一个程序,使用递归求一个数的阶乘。
步骤1
定义函数calculate_factorial(),接受一个参数num。
用递归的方式求num的阶乘。
步骤2
输入一个正整数,,并存储在变量number中。。
以number为参数,调用calculate_factorial()函数并将结果存储在result变量中。
打印result。
示例输入
5
示例输出
120
参考源码
# 定义函数
def calculate_factorial(num):# 创建递归的停止条件# 提示:想一个不需要任何计算的数# 例如:0的阶乘是1# 如果 num 是 0 返回 1if num == 0:return 1# 创建一个递归条件,这将帮助我们在每一步中获取 num 的阶乘# 想一个最小的工作量# 这将执行直到达到基本情况return num * calculate_factorial(num-1)# 从用户那里获取输入
number = int(input())# 调用 calculate_factorial 函数并将结果存储在 result 变量中
result = calculate_factorial(number)# 打印结果
print(result)
6. 26:求第N个斐波那契数
斐波那契数列以0(第0项)和1(第1项)开始,每一项都是前两项的和。
编写一个程序来生成第n个斐波那契数。
定义函数fibonacci_number(),参数为n。
在函数中返回第n个斐波那契数。
示例输入
7
示例输出
13
参考源码
def fibonacci_number(n):# 在此处编写你的代码if n <= 0:return 0if n == 1:return 1return fibonacci_number(n-1) + fibonacci_number(n-2)# 输入n的整数
n = int(input())
# 调用函数
print(fibonacci_number(n))
7. 237:递归计算一个数的幂
编写一个程序来计算一个数的幂。
步骤1:
定义函数findPower(),参数为base(底数)和power(指数)。
计算base的power次方的值。
步骤2:
输入两个整数,分别作为底数和指数。
调用findPower()函数来计算数字的幂,并将结果存储在result变量中。
打印result。
示例输入
2
3
示例输出
8
参考源码
# 定义函数 findPower()
def findPower(base, power):# 基本情况# 任何数的0次方都是1if power == 0:return 1if power % 2:return findPower(base, power - 1) * baseelse:t = findPower(base, power // 2)return t * t# 递归调用# 我们需要做的最少的工作# 将底数乘以底数的power - 1次方# return findPower(base, power - 1) * base# 获取底数和指数的输入
base = int(input())
power = int(input())# 调用 findPower 函数
result = findPower(base, power)# 打印结果
print(result)