📅  最后修改于: 2023-12-03 15:05:30.635000             🧑  作者: Mango
TCS Codevita是印度最大的学生编程比赛之一,每年吸引了来自全球各地的数千名学生参加。它旨在提高计算机编程技能,培养学生的解决问题的能力。
我在去年参加了TCS Codevita的面试。面试过程大约持续了一个小时,面试官非常友好且耐心地向我介绍了比赛的流程和规则。
在面试期间,我被要求解决两个问题。我使用了Python作为我的编程语言,因为我对它的语法和库非常熟悉。我使用了PyCharm作为我的IDE,在编写代码时使用了有效的注释和命名约定。
对于第一个问题,我需要编写一个程序,找到一个给定区间内的所有回文素数。这需要我了解质数和回文数的定义,并使用一个较短的时间内设计出能够找到所有回文素数的程序。
import math
def is_prime(num):
"""
判断是否是素数
"""
if num < 2:
return False
for i in range(2, int(math.sqrt(num))+1):
if num % i == 0:
return False
return True
def is_palindrome(num):
"""
判断是否是回文数
"""
num = str(num)
return num == num[::-1]
lower = int(input("输入区间下限:"))
upper = int(input("输入区间上限:"))
palindrome_primes = []
for num in range(lower, upper+1):
if is_prime(num) and is_palindrome(num):
palindrome_primes.append(num)
print("结果为:", palindrome_primes)
对于第二个问题,我需要编写一个程序,找到一个列表中最接近平均数的元素。这需要我计算平均数,然后通过查找最接近平均数的元素来枚举列表。
def closest_to_average(numbers):
"""
找到最接近平均数的元素
"""
length = len(numbers)
average = sum(numbers)/length
closest = numbers[0]
diff = abs(numbers[0] - average)
for i in range(1, length):
new_diff = abs(numbers[i] - average)
if new_diff < diff:
closest = numbers[i]
diff = new_diff
return closest
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print("结果为:", closest_to_average(numbers))
TCS Codevita面试是一个非常有益和挑战性的体验。通过参加这个比赛和面试,我学会了很多关于计算机编程、算法和数据结构的基础知识,并且得到了进一步提高我的机会。如果你考虑进入计算机编程领域,我强烈推荐你参加TCS Codevita比赛。