编程是一项实践性非常强的技能,通过解决实际问题来提升编程能力是学习编程的重要途径。以下是一些实战计算题,它们可以帮助你从基础开始,逐步提升你的编程技能。
1. 计算阶乘
阶乘是一个数学概念,表示一个正整数n的阶乘是所有小于及等于n的正整数的乘积。例如,5的阶乘(5!)等于5×4×3×2×1=120。
题目描述:编写一个函数,计算一个非负整数的阶乘。
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
# 测试
print(factorial(5)) # 应输出120
2. 斐波那契数列
斐波那契数列是一个著名的数列,每个数是前两个数的和。数列的前几项是:0, 1, 1, 2, 3, 5, 8, 13, …
题目描述:编写一个函数,生成斐波那契数列的前n项。
def fibonacci(n):
fib_sequence = [0, 1]
while len(fib_sequence) < n:
fib_sequence.append(fib_sequence[-1] + fib_sequence[-2])
return fib_sequence[:n]
# 测试
print(fibonacci(10)) # 应输出[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
3. 求最大公约数
最大公约数(GCD)是两个或多个整数共有的约数中最大的一个。例如,8和12的最大公约数是4。
题目描述:编写一个函数,计算两个非负整数的最大公约数。
def gcd(a, b):
while b:
a, b = b, a % b
return a
# 测试
print(gcd(8, 12)) # 应输出4
4. 求素数
素数是只能被1和它本身整除的大于1的自然数。例如,2, 3, 5, 7, 11等都是素数。
题目描述:编写一个函数,找出小于或等于n的所有素数。
def is_prime(num):
if num <= 1:
return False
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
return False
return True
def find_primes(n):
return [i for i in range(2, n+1) if is_prime(i)]
# 测试
print(find_primes(20)) # 应输出[2, 3, 5, 7, 11, 13, 17, 19]
5. 计算字符串中单词数量
编写一个函数,计算一个字符串中单词的数量。假设单词之间由空格分隔。
题目描述:编写一个函数,计算字符串中单词的数量。
def count_words(s):
return len(s.split())
# 测试
print(count_words("Hello, world!")) # 应输出2
通过这些实战计算题的练习,你可以逐步提升你的编程技能,同时也能够加深对编程语言和数据结构的理解。记住,编程是一项需要不断练习和积累经验的技能,希望这些题目能够帮助你在这个旅程中取得进步。
