2014年第五届蓝桥杯大赛软件类C_C++ C组全国总决赛真题 下载本文

内容发布更新时间 : 2024/9/22 7:24:01星期一 下面是文章的全部内容请认真阅读。

2014年决赛 C/C++高职高专组

1. 结果填空 (满分10分)

标题:国王的遗产

X国是个小国。国王K有6个儿子。在临终前,K国王立下遗嘱:国王的一批牛作为遗产要分给他的6个儿子。

其中,大儿子分1/4,二儿子1/5,三儿子1/6,.... 直到小儿子分1/9。

牛是活的,不能把一头牛切开分。

最后还剩下11头牛,分给管家。

请计算国王这批遗产中一共有多少头牛。

这是一个整数,请通过浏览器提交答案,不要填写任何多余的内容(比如说明性的文字)

2. 结果填空 (满分35分)

标题:神奇6位数

有一个6位的正整数,它有个很神奇的性质:

分别用2 3 4 5 6去乘它,得到的仍然是6位数,并且乘积中所包含的数字与这个6位数完全一样!只不过是它们的顺序重新排列了而已。

请计算出这个6位数。

这是一个整数,请通过浏览器提交答案,不要填写任何多余的内容(比如说明性的文字)

3. 代码填空 (满分25分)

标题:日期差

历史上,不同的人类聚居地可能有不同的历法,因而记录下来的资料中日期的换算就很麻烦。幸好今天我们统一使用公元纪年法。当然,这种历法对求两个日期差多少天也不是十分简便,但毕竟是可以忍受的。

下面的程序计算了两个日期的差值,两个日期都使用公元纪年法。

第 1/7 页

请分析程序逻辑,并推断划线部分缺失的代码。

int to_day(int y, int m, int d) { int mon[] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; int day = 0; int i; for(i=1; i

int diff(int y1, int m1, int d1, int y2, int m2, int d2) { int a = to_day(y1, m1, d1); int b = to_day(y2, m2, d2); return b-a; }

int main() { int n = diff(1864,12,31,1865,1,1); printf(\ return 0; }

注意:通过浏览器提交答案。只填写缺少的内容,不要填写任何多余的内容(例如:说明性文字或已有符号)。

4. 程序设计(满分50分)

标题:拼接平方数

小明发现49很有趣,首先,它是个平方数。它可以拆分为4和9,拆分出来的部分也是平方数。169也有这个性质,我们权且称它们为:拼接平方数。

第 2/7 页

100可拆分1 00,这有点勉强,我们规定,0 00 000 等都不算平方数。

小明想:还有哪些数字是这样的呢?

你的任务出现了:找到某个区间的所有拼接平方数。

【输入格式】

两个正整数 a b (a

【输出格式】

若干行,每行一个正整数。表示所有的区间[a,b]中的拼接平方数

例如: 输入: 1 200

程序应该输出: 49 169

再例如: 输入: 169 10000

程序应该输出: 169 361 1225 1444 1681 3249 4225 4900 9025

资源约定:

峰值内存消耗 < 256M CPU消耗 < 1000ms

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

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

第 3/7 页