寻找21位的花朵数
2星 需积分: 3 194 浏览量
更新于2024-09-20
收藏 53KB DOC 举报
"2011国信南点杯C本科模拟题"
这篇资料是关于2011年国信南点杯C语言本科模拟试题的介绍,主要涉及的是编程问题,特别是与算法和数值处理相关的编程挑战。题目中提到了“花朵数”的概念,这是一个在数学和编程领域里的有趣问题。当一个十进制正整数的每个位上的数字的N次方和等于该数本身时,我们称其为N次方的花朵数。例如,3次方的花朵数有153,4次方的花朵数有1634,而5次方的花朵数则有92727。题目要求求解N=21时的所有花朵数,并强调程序必须在3分钟内完成,以确保时间复杂度的合理性。
1. 第一题是代码填空,目的是交换一个2位整数的十位和个位。通过给出的代码,我们可以看出,已经定义了变量a存储十位数,b存储个位数,然后通过填写缺失的代码,将b放到高位,a放到低位,最后返回结果。
2. 第二题同样为代码填空,目的是将一个二进制字符串转化为整数。这里通过遍历字符串,逐位转换为十进制并累加,已有的代码使用了n*n*2+(p[i]-'0')来实现二进制到十进制的转换。
3. 第三题是找出三个整数a, b, c中的中位数。首先通过两次swap比较调整,确保a <= b <= c,之后直接将b赋值给m即可得到中间值。
4. 第四题是递归函数的填充,用于计算m个A和n个B可以组成多少种排列。根据排列组合的原理,递归公式应该是f(m, n) = f(m, n-1) + f(m-1, n),这里需要补充递归调用的细节。
5. 最后一题是关于数组中正负数重新排序的问题,目标是将所有负数移动到正数前面。这通常可以通过双指针或一次遍历来实现,需要分析代码逻辑并补充缺失部分以实现功能。
这些题目涵盖了C语言的基础知识,包括变量操作、字符串处理、逻辑判断、递归以及数组操作等,同时也涉及到算法设计和问题解决能力。在解答这类问题时,参赛者需要具备扎实的C语言基础,良好的逻辑思维能力和高效的编程技巧。
108 浏览量
点击了解资源详情
点击了解资源详情
108 浏览量
2011-05-12 上传
2011-04-26 上传
点击了解资源详情
2011-04-30 上传
点击了解资源详情
HaCool
- 粉丝: 0
- 资源: 7