10.1 判断素数
题目描述
编写一个程序,判断用户输入的一个正整数是否为素数。
解题思路
- 输入一个正整数。
- 使用循环判断从2到该数的平方根是否有整除的数。
代码详解
num = int(input("请输入一个正整数: "))
is_prime = True
if num < 2:
is_prime = False
else:
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
is_prime = False
break
if is_prime:
print(f"{num} 是素数")
else:
print(f"{num} 不是素数")
10.2 打印斐波那契数列
题目描述
编写一个程序,输出斐波那契数列的前n项,n由用户输入。
解题思路
- 使用循环生成斐波那契数列。
代码详解
n = int(input("请输入要输出的斐波那契数列项数: "))
a, b = 0, 1
fib_seq = []
for _ in range(n):
fib_seq.append(a)
a, b = b, a + b
print(fib_seq)
10.3 冒泡排序
题目描述
实现一个冒泡排序算法,要求用户输入一组整数,然后输出排序后的结果。
解题思路
- 使用嵌套循环比较相邻元素。
代码详解
arr = list(map(int, input("请输入一组整数,用空格分隔: ").split()))
n = len(arr)
for i in range(n):
for j in range(0, n - i - 1):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
print("排序后的数组:", arr)
10.4 统计字符频率
题目描述
编写程序,统计输入字符串中每个字符出现的频率,并输出结果。
解题思路
- 使用字典存储字符和其频率。
代码详解
input_string = input("请输入字符串: ")
freq = {}
for char in input_string:
freq[char] = freq.get(char, 0) + 1
print("字符频率:", freq)
10.5 查找最大子序列和
题目描述
给定一个整数数组,编写程序找出具有最大和的连续子序列。
解题思路
- 使用动态规划维护当前的子序列和和最大子序列和。
代码详解
array = list(map(int, input("请输入整数数组,用空格分隔: ").split()))
max_sum = float('-inf')
current_sum = 0
for num in array:
current_sum += num
if current_sum > max_sum:
max_sum = current_sum
if current_sum < 0:
current_sum = 0
print("最大子序列和:", max_sum)
10.6 查找重复元素
题目描述
编写程序,找出输入列表中所有重复的元素。
解题思路
- 使用集合存储已见过的元素。
代码详解
input_list = list(map(int, input("请输入整数列表,用空格分隔: ").split()))
seen = set()
duplicates = set()
for num in input_list:
if num in seen:
duplicates.add(num)
else:
seen.add(num)
print("重复的元素:", duplicates)
10.7 计算阶乘
题目描述
编写程序,计算一个正整数的阶乘。
解题思路
- 使用循环从1乘到n。
代码详解
num = int(input("请输入一个正整数: "))
result = 1
for i in range(1, num + 1):
result *= i
print("阶乘是:", result)
10.8 查找数组中第K大的元素
题目描述
编写程序,找出数组中第K大的元素。
解题思路
- 使用排序的方法,先对数组进行排序。
代码详解
array = list(map(int, input("请输入整数数组,用空格分隔: ").split()))
k = int(input("请输入K值: "))
unique_elements = list(set(array))
unique_elements.sort(reverse=True)
print(f"数组中第{k}大的元素是: {unique_elements[k - 1]}")
10.9 验证回文数
题目描述
编写程序,判断一个字符串是否为回文。
解题思路
- 比较字符串的前后字符。
代码详解
input_string = input("请输入字符串: ")
is_palindrome = True
length = len(input_string)
for i in range(length // 2):
if input_string[i] != input_string[length - 1 - i]:
is_palindrome = False
break
if is_palindrome:
print(f"{input_string} 是回文")
else:
print(f"{input_string} 不是回文")
10.10 爬楼梯问题
题目描述
假设每次可以爬1阶或2阶,编写程序计算爬到n阶的不同方式数。
解题思路
- 使用动态规划的思想。
代码详解
n = int(input("请输入楼梯的阶数: "))
if n == 1:
print("不同的爬楼梯方式数: 1")
elif n == 2:
print("不同的爬楼梯方式数: 2")
else:
dp = [0] * (n + 1)
dp[1], dp[2] = 1, 2
for i in range(3, n + 1):
dp[i] = dp[i - 1] + dp[i - 2]
print("不同的爬楼梯方式数:", dp[n])
1 条评论
在畅想未来时需警惕乌托邦式理想化。