IT公司笔试算法集锦:逆序整数、平均分以上、回文判断与组合问题

需积分: 3 17 下载量 193 浏览量 更新于2024-07-27 收藏 91KB DOC 举报
"部分IT公司笔试算法题,包括逆序整数、寻找高于平均分的学生、回文判断和组合问题" 1、逆序整数: 在第一个题目中,我们需要实现一个递归函数`convert`来将整数逆序存入数组。这个函数的基本思想是将整数的每一位拆分开,然后从低位到高位存储。当`n`大于等于10时,我们递归调用`convert`处理除以10后的数,然后将当前位的余数(即原数的个位)存储到数组的第一个位置。在主函数`main`中,我们创建了一个足够大的数组`result`来存储逆序后的整数,并在最后打印结果。 2、求高于平均分的学生学号及成绩: 第二题的目标是找出所有分数高于平均分的学生。我们使用递归计算总分`total`和学生人数`n`,同时找到平均分。每次递归调用,我们读取一个学生的学号和分数,如果分数高于或等于平均分,就打印学号和分数。当没有更多学生时,返回当前的平均分。 3、回文判断: 第三题考察的是递归解决回文字符串的问题。函数`find`通过比较字符串首尾字符是否相等来决定是否是回文。如果字符串长度小于或等于1,那么它一定是回文。如果首尾字符相等,我们递归检查去掉首尾字符后的子串;否则,返回0表示不是回文。在主函数中,我们调用`find`并根据结果打印"Yes"或"No"。 4、组合问题: 第四题要求生成所有可能的组合,从给定的M个不同字符中选取N个。这是一个经典的组合问题,可以使用递归来解决。在`find`函数中,当需要选取的字符数`n`等于1时,我们将当前字符追加到结果字符串中并打印。否则,我们遍历源字符串中的每一个字符,将其作为新组合的开头,并递归处理剩下的字符和减1的`n`。 这些题目覆盖了递归、数组操作、基本的数学运算以及字符串处理等核心算法知识,对于准备IT公司的笔试非常有帮助。通过解决这些问题,考生可以提高自己在数据结构、算法和编程技巧方面的能力。