13年蓝桥杯校内选拔赛B组试题

1.标题:满二叉树 

    一般情况下,二叉树通过含有指针的数据结构来存储。但对特殊情形,也可以简化存储。   

    比如满二叉树的情形:除了最后一层的叶子节点外,所有的节点都有完整的左右子节点。我们可以按照树的逐层遍历顺序把节点存在数组中。当然,需要从某个节点的序号计算出它的父亲节点或者两个孩子节点。   

    下面代码的目标是求某节点的父节点的。请填写划线部分缺少的代码。  

 

// 返回k号节点的父节点数据

// data: 存储满二叉树的数组

// k: 当前节点的索引号(即数组下标,从0开始)

int get_parent(int* data, int k)

{

       returndata[ _______________ ];  //填空位置

}

   

请严格按照格式,通过浏览器提交答案。

注意:只提交划线部分缺少的内容,不要写其它附加内容,比如:说明性的文字。

注意选择自己使用的编译器类型

  

 

2.题目标题: 堆煤球 

    小明的爷爷很怀旧,冬天来了他还是要自己做煤球。 

    并且,爷爷把煤球堆放得十分整齐有规律:最上边一层只有1个煤球。第二层4个煤球摆成正方形,再下面9个煤球也是摆成正方形。总之,第 n 层就是边长为 n 的正方形。这样的结构既通风又稳固。 

    小明数了数,一共有30层,请你帮助计算一下,一共有多少个煤球? ___________

  

请通过浏览器提交答案。

注意:只提交数字,不要求解过程或公式。

注意:不要书写其它的内容(比如:说明性的文字)。

 

 

3.题目标题: 大小之差 

    某6位数,只包含1~9中的某些数字(可以重复包含同一数字,但不含数字0)。

    该数字重新排列数位后,可以得到最大数和最小数。最大最小之差也是6位数,并且它恰好包含了组成原6位数同样的数字。 

    比如:766431 - 134667 = 631764 就是具有这样特征的数字。   

    你还能找到另一个这样的6位数吗?   

    请填写它重新排列数位后得到的最大数:________________ 

 

请通过浏览器提交答案。

注意:只提交另一个6位数,题中已经给出的这个不要提交。

注意:不要书写其它的内容(比如:说明性的文字)。

 

4.标题:回文数字 

    观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。 

    本题要求你找到一些5位或6位的十进制数字。满足如下要求:

    该数字的各个数位之和等于输入的整数。 

 

【输入格式】

一个正整数 n(10<n<100), 表示要求满足的数位和。

 

【输出格式】

若干行,每行包含一个满足要求的5位或6位整数。

数字按从小到大的顺序排列。

如果没有满足条件的,输出:-1

 

【样例输入】

44

 

【样例输出】

99899

499994

589985

598895

679976

688886

697796

769967

778877

787787

796697

859958

868868

877778

886688

895598

949949

958859

967769

976679

985589

994499

 

【样例输入2】

60

 

【样例输出2】

-1

 

【资源约定】

    峰值内存消耗 < 64M

   CPU消耗  < 1000ms

 

 

请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。

 

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

 

注意: main函数需要返回0

注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。

注意: 所有依赖的函数必须明确地在源文件中 #include<xxx>, 不能通过工程设置而省略常用头文件。

 

提交时,注意选择所期望的编译器类型。

 

5.标题:数字游戏 

    栋栋正在和同学们玩一个数字游戏。 

    游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈。栋栋首先说出数字1。接下来,坐在栋栋左手边的同学要说下一个数字2。再下面的一个同学要从上一个同学说的数字往下数两个数说出来,也就是说4。下一个同学要往下数三个数,说7。依次类推。 

    为了使数字不至于太大,栋栋和同学们约定,当在心中数到 k 时,下一个数字重新从1开始数。例如,当k=13时,栋栋和同学们报出的前几个数依次为:

   1, 2, 4, 7, 11, 3, 9, 3, 11, 7。 

    游戏进行了一会儿,栋栋想知道,到目前为止,他所有说出的数字的总和是多少。

 

【输入格式】

    输入的第一行包含三个整数 n,k,T,其中 n 和 k 的意义如上面所述,T 表示到目前为止栋栋一共说出的数字个数。

 

【输出格式】

    输出一行,包含一个整数,表示栋栋说出所有数的和。

 

【样例输入】

3 13 3

【样例输出】

17

 

 

 

【样例说明】

    栋栋说出的数依次为1, 7, 9,和为17。

 

【数据规模与约定】

    1< n,k,T < 1,000,000;

 

【资源约定】

    峰值内存消耗 < 64M

   CPU消耗  < 2000ms

 

 

请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。

 

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

 

注意: main函数需要返回0

注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。

注意: 所有依赖的函数必须明确地在源文件中 #include<xxx>, 不能通过工程设置而省略常用头文件。

 

提交时,注意选择所期望的编译器类型。  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值