2012年蓝桥杯软件设计大赛河南省初赛试题和答案

2012年蓝桥杯软件设计大赛河南省初赛试题和答案
2012年蓝桥杯软件设计大赛河南省初赛试题和答案

1 #include

2 #include

3

4using namespace std;

5

6int main()

7{

8for(int i = 10000; i <= 99999; ++i)

9 {

10int t = i;

11int a = t/10000;

12 t %= 10000;

13int b = t/1000;

14 t %= 1000;

15int c = t/100;

16 t %= 100;

17int d = t/10;

18int e = t%10;

19int tmp = e * 10000 + d*1000 + c*100 + b*10 + a;

20if(a==b || a==c || a==d || a==e || b==c || b==d || b==e || c==d || c==e || d==e)

21continue;

22for(int j = 1; j <= 9; ++j)

23 {

24if(i * j == tmp)

25 {

26 printf("ABCDE=%d\n", i);

27 printf("?=%d\n", j);

28 }

29 }

30 }

31 system("pause");

32return0;

33 }

三、比酒量

有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。

等船长醒来,发现海盗船搁浅了。他在航海日志中写到:“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船......”

请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。

如果有多个可能的答案,请列出所有答案,每个答案占一行。

格式是:人数,人数,...

例如,有一种可能是:20,5,4,2,0

1/*

2输出结果为:

3 20 5

4 2 0

4 18 9 3 2 0

5 15 10 3 2 0

6 12 6 4 2 0

7*/

8 #include

9 #include

10 #include

11

12using namespace std;

13

14int main()

15{

16 freopen("3-1.txt","w", stdout);

17for(int i = 20; i > 0; --i)

18 {

19for(int j = i-1; j > 0; --j)

20 {

21for(int k = j-1; k > 0; --k)

22 {

23for(int p = k-1; p > 0; --p)

24if(fabs(1.0/i + 1.0/j + 1.0/k + 1.0/p - 1) < 1e-6)

25 printf("%d %d %d %d 0\n", i, j, k, p);

26 }

27 }

28 }

29 system("pause");

30return0;

31 }

四、奇怪的比赛

某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪:

每位选手需要回答10个问题(其编号为1到10),越后面越有难度。答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。

每位选手都有一个起步的分数为10分。

某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗?

如果把答对的记为1,答错的记为0,则10个题目的回答情况可以用仅含有1和0的串来表示。例如:0010110011 就是可能的情况。

你的任务是算出所有可能情况。每个答案占一行。

1/*

2输出答案为:

30 0 1 0 1 1 0 0 1 1

40 1 1 1 0 1 0 0 0 0

51 0 1 1 0 1 0 0 0 0

6*/

7 #include

8 #include

9 #include

10

11using namespace std;

12int score;

13int ans[11];

14

15void dp(int cur, int score)

16{

17if(cur == 11 && score == 100)

18 {

19for(int i = 1; i <= 10; ++i)

20 printf("%d ", ans[i]);

21 printf("\n");

22return ;

23 }

24if(cur >= 11)

25return;

26

27 score -= cur;

28 ans[cur] = 0;

29 dp(cur + 1, score);

30

31

32 score = (score + cur) << 1;

33 ans[cur] = 1;

34 dp(cur + 1, score);

35

36}

37int main()

38{

39 freopen("3-4.txt", "w", stdout);

40 score = 10;

41 dp(1, 10);

42//system("pause");

43return0;

44 }

iew Code

五、转方阵

对一个方阵转置,就是把原来的行号变列号,原来的列号变行号例如,如下的方阵:

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

转置后变为:

1 5 9 13

2 6 10 14

3 7 11 15

4 8 12 16

但,如果是对该方阵顺时针旋转(不是转置),却是如下结果:

13 9 5 1

14 10 6 2

15 11 7 3

16 12 8 4

下面的代码实现的功能就是要把一个方阵顺时针旋转。

1 #include

2 #include

3

4/*

5就是将二维数组转化为一维数组

6根据 x[m][n] ----> y[n][rank-m-1],其中 m = i/rank, n = i%rank

7*/

8void rotate(int* x, int rank)

9{

10int* y = (int*)malloc(rank * rank * sizeof(int)); // 填空

11for(int i=0; i

12 {

13 y[(i%rank)*rank + rank-i/rank-1] = x[i]; // 填空

14 }

15for(int i=0; i

16 {

17 x[i] = y[i];

18 }

19 free(y);

20}

21int main(int argc, char* argv[])

22{

23int x[4][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; 24int rank = 4;

25 rotate(&x[0][0], rank);

26for(int i=0; i

27 {

28for(int j=0; j

29 {

30 printf("%4d", x[i][j]);

31 }

32 printf("\n");

33 }

34 system("pause");

35return0;

36 }

六、大数乘法

对于32位字长的机器,大约超过20亿,用int类型就无法表示了,我们可以选择int64类型,但无论怎样扩展,固定的整数类型总是有表达的极限!如果对超级大整数进行精确运算呢?一个简单的办法是:仅仅使用现有类型,但是把大整数的运算化解为若干小整数的运算,即所谓:“分块法”。

如图【1.jpg】表示了分块乘法的原理。可以把大数分成多段(此处为2段)小数,然后用小数的多次运算组合表示一个大数。可以根据int的承载能力规定小块的大小,比如要把int分成2段,则小块可取10000为上限值。注意,小块在进行纵向累加后,需要进行进位校正。

以下代码示意了分块乘法的原理(乘数、被乘数都分为2段)。

1 #include

2 #include

3using namespace std;

4

5void bigmul(int x, int y, int r[]) 6{

7int base = 10000;

8int x2 = x / base;

9int x1 = x % base;

10int y2 = y / base;

11int y1 = y % base;

12

13int n1 = x1 * y1;

14int n2 = x1 * y2;

15int n3 = x2 * y1;

16int n4 = x2 * y2;

17

18 r[3] = n1 % base;

19 r[2] = n1 / base + n2 % base + n3 % base;

20 r[1] = n3 / base + n2 / base + n4 % base; // 填空

21 r[0] = n4 / base;

22

23 r[1] += r[2] / base; // 填空

24 r[2] = r[2] % base;

25 r[0] += r[1] / base;

26 r[1] = r[1] % base;

27}

28int main(int argc, char* argv[])

29{

30int x[] = {0,0,0,0};

31 bigmul(87654321, 12345678, x);

32 printf("%d%d%d%d\n", x[0],x[1],x[2],x[3]);

33 system("pause");

34return0;

35 }

七、放棋子

今有6 x 6 的棋盘格。其中某些格子已经预先放好了棋子。现在要再放上去一些,使得:每行每列都正好有3颗棋子。我们希望推算出所有可能的放法。下面的代码就实现了这个功能。

初始数组中,“1”表示放有棋子,“0”表示空白。

1 #include

2 #include

3

4using namespace std;

5

6int N = 0;

7bool CheckStoneNum(int x[][6])

8{

9for(int k=0; k<6; k++)

10 {

11int NumRow = 0;

12int NumCol = 0;

13for(int i=0; i<6; i++)

14 {

15if(x[k][i]) NumRow++; 16if(x[i][k]) NumCol++;

17 }

18if(NumRow != 3 || NumCol != 3)// 填空

19return false;

20 }

21return true;

22}

23int GetRowStoneNum(int x[][6], int r)

24{

25int sum = 0;

26for(int i=0; i<6; i++) if(x[r][i]) sum++;

27return sum;

28}

29int GetColStoneNum(int x[][6], int c)

30{

31int sum = 0;

32for(int i=0; i<6; i++) if(x[i][c]) sum++;

33return sum;

34}

35void show(int x[][6])

36{

37for(int i=0; i<6; i++)

38 {

39for(int j=0; j<6; j++) printf("%2d", x[i][j]);

40 printf("\n");

41 }

42 printf("\n");

43}

44void f(int x[][6], int r, int c);

45void GoNext(int x[][6], int r, int c)

46{

47if(c<6)

48 f(x, r, c+1); // 填空

49else

50 f(x, r+1, 0);

51}

52void f(int x[][6], int r, int c)

53{

54if(r==6)

55 {

56if(CheckStoneNum(x))

57 {

58 N++;

59 show(x);

60 }

61return;

62 }

63if(x[r][c]) // 填空------已经放有了棋子

64 {

65 GoNext(x,r,c);

66return;

67 }

68int rr = GetRowStoneNum(x,r);

69int cc = GetColStoneNum(x,c);

70if(cc>=3) // 本列已满

71 GoNext(x,r,c);

72else if(rr>=3) // 本行已满

73 f(x, r+1, 0);

74else

75 {

76 x[r][c] = 1;

77 GoNext(x,r,c);

78 x[r][c] = 0;

79if(!(3-rr >= 6-c || 3-cc >= 6-r)) // 本行或本列严重缺子,则本格不能空着!

80 GoNext(x,r,c);

81 }

82}

83int main(int argc, char* argv[])

84{

85int x[6][6] = {

86 {1,0,0,0,0,0},

87 {0,0,1,0,1,0},

88 {0,0,1,1,0,1},

89 {0,1,0,0,1,0},

90 {0,0,0,1,0,0},

91 {1,0,1,0,0,1}

92 };

93 f(x, 0, 0);

94 printf("%d\n", N);

95 system("pause");

96return0;

97 }

八、密码发生器

在对银行账户等重要权限设置密码的时候,我们常常遇到这样的烦恼:如果为了好记用生日吧,容易被破解,不安全;如果设置不好记的密码,又担心自己也会忘记;如果写在纸上,担心纸张被别人发现或弄丢了...

这个程序的任务就是把一串拼音字母转换为6位数字(密码)。我们可以使用任何好记的拼音串(比如名字,王喜明,就写:wangximing)作为输入,程序输出6位数字。

变换的过程如下:

第一步. 把字符串6个一组折叠起来,比如wangximing则变为:

wangxi

ming

第二步. 把所有垂直在同一个位置的字符的ascii码值相加,得出6个数字,如上面的例子,则得出:

228 202 220 206 120 105

第三步. 再把每个数字“缩位”处理:就是把每个位的数字相加,得出的数字如果不是一位数字,就再缩位,直到变成一位数字为止。例如: 228 => 2+2+8=12 => 1+2=3

上面的数字缩位后变为:344836, 这就是程序最终的输出结果!

要求程序从标准输入接收数据,在标准输出上输出结果。

输入格式为:第一行是一个整数n(<100),表示下边有多少输入行,接下来是n行字符串,就是等待变换的字符串。

输出格式为:n行变换后的6位密码。

例如,输入:

5

zhangfeng

wangximing

jiujingfazi

woaibeijingtiananmen

haohaoxuexi

则输出:

772243

297332

716652

875843

注意:

请仔细调试!您的程序只有能运行出正确结果的时候才有机会得分!

在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。

请把所有函数写在同一个文件中,调试好后,存入与【考生文件夹】下对应题号的“解答.txt”中即可。

相关的工程文件不要拷入。

源代码中不能能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。

允许使用STL类库,但不能使用MFC或ATL等非ANSI c++标准的类库。例如,不能使用CString类型(属于MFC类库)。

1 #include

2 #include

3

4using namespace std;

5

6char s1[100];

7int s2[100][6];

8int ans[100];

9

10int change(int num)

11{

12int tmp = 0;

13if(num < 10)

14return num;

15while(num)

16 {

17 tmp += num%10;

18 num /= 10;

20return change(tmp);

21}

22

23int main()

24{

25int T;

26 scanf("%d", &T);

27while(T--)

28 {

29 memset(s2, 0, sizeof(s2));

30 memset(ans, 0, sizeof(ans));

31 scanf("%s", s1);

32int len = strlen(s1);

33for(int i =0, j = 0; i < len; ++i)

34 s2[i/6][i%6] = s1[i];

35for(int i = 0; i < 6; ++i)

36 {

37for(int j = 0; j <= len/6; ++j)

38 ans[i] += s2[j][i];

39 }

40for(int i = 0; i < 6; ++i)

41 printf("%d", change(ans[i]));

42 printf("\n");

43 }

44return0;

45 }

九、夺冠概率

足球比赛具有一定程度的偶然性,弱队也有战胜强队的可能。

假设有甲、乙、丙、丁四个球队。根据他们过去比赛的成绩,得出每个队与另一个队对阵时取胜的概率表:

甲乙丙丁

甲- 0.1 0.3 0.5

乙0.9 - 0.7 0.4

丙0.7 0.3 - 0.2

丁0.5 0.6 0.8 -

数据含义:甲对乙的取胜概率为0.1,丙对乙的胜率为0.3,...

现在要举行一次锦标赛。双方抽签,分两个组比,获胜的两个队再争夺冠军。(参见【1.jpg】)

请你进行10万次模拟,计算出甲队夺冠的概率。

注意:

请仔细调试!您的程序只有能运行出正确结果的时候才有机会得分!

在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。

请把所有函数写在同一个文件中,调试好后,存入与【考生文件夹】下对应题号的“解答.txt”中即可。

相关的工程文件不要拷入。

源代码中不能能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。

允许使用STL类库,但不能使用MFC或ATL等非ANSI c++标准的类库。例如,不能使用CString类型(属于MFC类库)。

解析:

这道题没读懂到底模拟你什么意思,是让随机产生10万个分组然后计算甲胜的概率???

其实可以用公式推导出概率公式的

十、取球游戏

今盒子里有n个小球,A、B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断。

我们约定:

每个人从盒子中取出的球的数目必须是:1,3,7或者8个。

轮到某一方取球时不能弃权!

A先取球,然后双方交替取球,直到取完。

被迫拿到最后一个球的一方为负方(输方)

请编程确定出在双方都不判断失误的情况下,对于特定的初始球数,A是否能赢?

程序运行时,从标准输入获得数据,其格式如下:

先是一个整数n(n<100),表示接下来有n个整数。然后是n个整数,每个占一行(整数<10000),表示初始球数。

程序则输出n行,表示A的输赢情况(输为0,赢为1)。

例如,用户输入:

10

18

则程序应该输出:

1

1

注意:

请仔细调试!您的程序只有能运行出正确结果的时候才有机会得分!

在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。

请把所有函数写在同一个文件中,调试好后,存入与【考生文件夹】下对应题号的“解答.txt”中即可。

相关的工程文件不要拷入。

源代码中不能能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。

允许使用STL类库,但不能使用MFC或ATL等非ANSI c++标准的类库。例如,不能使用CString类型(属于MFC类库)。

代码一:不知道这种思路对不对

1 #include

2 #include

3

4using namespace std;

5

6int a[10005];

7

8// a[i] = 1 表示先手必赢, a[i] = 0表示输

9void fun()

10{

11for(int i = 1; i <= 10000; ++i)

12 {

13if(a[i] == 0)

14 {

15 a[i+1] = 1;

16 a[i+3] = 1;

17 a[i+7] = 1;

18 a[i+8] = 1;

19 }

20 }

21}

22

23int main()

24{

25int n, num;

26 memset(a, 0, sizeof(a));

27 fun();

28 scanf("%d", &n);

29while(n--)

30 {

31 scanf("%d", &num);

32 printf("%d\n", a[num]);

33 }

34return0;

35 }

蓝桥杯c c 省赛试题及答案解析

2016蓝桥杯c-c++B组省赛试题及解析 第一题 煤球数目 有一堆煤球,堆成三角棱锥形。具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形), .... 如果一共有100层,共有多少个煤球? 请填表示煤球总数目的数字。 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

答案:171700 #include<> int main() { int a[101] ={0}; for(int i = 1 ; i < 101 ; i ++) a[i] = a[i-1] + i; int ans = 0; for(int j = 1 ; j < 101 ; j ++) ans += a[j]; printf("%d\n",ans); return 0; }

第二题 生日蜡烛 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。 现在算起来,他一共吹熄了236根蜡烛。 请问,他从多少岁开始过生日party的? 请填写他开始过生日party的年龄数。 注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。 答案:26 #include<> int main()

{ int start,end; for(start = 1 ; start < 236 ; start ++) { for( end = start ; end < 236 ; end ++ ) { int sum = 0; for(int i = start; i <= end; i ++) sum += i; if( sum == 236) { printf("start : %d end : %d\n",start,end); } } }

蓝桥杯哦2010第一届大赛试题

第一题,以下函数的功能是将任意整数进行因式分解, 请完成该程序的空缺使函数能够正常运算 void f(int n) { for(int i=2; i1) printf(“%d\n”, n); } 第二题,以下函数的功能是将给定字符串进行倒序输出,请完成该函数空缺部分。 char* p = “abcdef”; char* q = (char*)malloc(strlen(p)+1); for(int i=0, int len=strlen(p); i

第三题,(这题的题目到底是要干啥,本人到现在沿未明了,数学学统计好,但可以确定原题给出的代码就是如此) int f(int m, int n) { int a = 1; int m1 = m; //—–(3)—- a *= m1–; int b = 1; while(n>1) b *= n–; return a / b; } 第四题,任意给出一个四位数, 把它重新组成一个四位的最大数和一个最小数, 算出两者间的差。 例如:3721这个数,可以重组成:7321和1237,相数之差为7321-1237 请完善下面这个函数,以实现此功能 int f(int n) { int N[4]; for(int i=0; i<4; i++) { N[3-i] = n % 10;

【IT专家】第四届全国蓝桥杯软件设计大赛 java软件开发本科B组 题目及答案

第四届全国蓝桥杯软件设计大赛java软件开发本科B组题目及答案2013/05/26 0 1.世纪末的星期 ?曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。还有人称今后的某个世纪末的12月31日,如果是星期一则会....有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!!于是,“谣言制造商”又修改为星期日......1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)?请回答该年份(只写这个4位整数,不要写12月31等多余信息) ?参考代码: ?import java.util.Calendar;import java.util.Date;public class 世纪末的星期{public static void main(String[] args){for(int i=1999;;i+=100){Calendar calendar=Calendar.getInstance(); calendar.setTime(new Date(i-1900,11,31));if(calendar.get(Calendar.DAY_OF_WEEK)- 1==0){System.out.println(i);return;}}}} ?标题: 马虎的算式小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。有一次,老师出的题目是:36 x 495 = ?他却给抄成了:396 x 45 = ?但结果却很戏剧性,他的答案竟然是对的!!因为36 * 495 = 396 * 45 = 17820类这样的巧合情况可能还有很多,比如:27 * 594 = 297 * 54假设 a b c d e 代表1~9不同的5个数字(注意是各不相同的数字,且不含0)能满足形如:ab * cde = adb * ce 这样的算式一共有多少种呢?请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。满足乘法交换律的算式计为不同的种类,因此答案肯定是个偶数。 ?参考代码: ?public class 马虎的算式{static int kinds=0;static int a[]=new int[6];static boolean vis[]=new boolean[10];static void check(int a[]){int num1=a[1]*10+a[2];int num2=a[3]*100+a[4]*10+a[5];int num3=a[1]*100+a[4]*10+a[2];int num4=a[3]*10+a[5];if(num1*num2==num3*num4)kinds++;}static void dfs(int start,int

蓝桥杯比赛心得

蓝桥杯比赛心得 首先想说的是,这次做的太糟糕了吧。第一是时间没有分配好,第二是太过心急。 做第一题时,很快写出了公式,心想咋出这么简单的题目。本想自己不敲代码了,直接拿笔算算得了。后来发现用笔也不是太容易,就敲了代码,刚开始不知道怎么回事不出结果,后来用了个double 来保存结果,然后就输出结果了。后来查了查才知道之前用了这句 If(i*2.3+j*1.9==82.3)cout<然后Iffabs((i*2.3+j*1.9-82.3)<0.0000001)cout<

迷茫了会,后来就用了四个for循环,将结果用a,b分别表示出来,然后很快结果就出来了,开始会考虑用的double不会有误差,然后还特意将编译出来的结果一个一个的看看,确认是对的,然后就稳稳当当的提交了86!后来和学姐他们讨论的时候才发现自己有个问题忘了考虑了,2/2 *3/3这样的情况是要除去的!!!好吧,就这么错了!很多时候都会觉得自己太粗心大意了,然后就想到了曾经看到的一篇文章,说是所谓的粗心是你对知识的理解不透彻掌握的不扎实。往往以为自己做出来了就完事大吉了,然而最后才发现自己顾此失彼了! 做完分子分母问题当时觉得前面三道题做的必定是对的,然后就又把后面的题目有都看了一遍,同时决定后面的三道答题放弃不做了。接着我看来看7进制问题,发现题目没有看懂。。然后我觉得数字填数挺有意思就看看手写能不能搞定,当时看到了上下两个三角形一共六条边,一共12个数1-12,平均每条线上的值的和为26,然后觉得那两个空就是10或者5,15+11==26,然后在本子上划了划,感觉做不出来,就放那了,其实可以先随便蒙一个的,很大可能就对了呀。。。总之还是没有思路吧。 接着就是随便看其他的题目了瞄到了最后一题,当时感觉是可以做出来的,只是时间会用的比较长。好像是从11点多点开始做的,一直做到1点,太死心塌地了,,,感觉差一点就做出来了吧,后来和老师讨论才发现自己的思路还是错的。。。若是拿最后放弃最后一道题检查一下也不至于搞的这么惨。。。。。 比赛的时候还是有点紧张的吧,,心态调的不是太好,最重要的

第十一届蓝桥杯大赛软件类省赛第三场 CC++

第十一届蓝桥杯大赛软件类省赛第三场C/C++大学B组 第十一届蓝桥杯大赛软件类省赛第三场 C/C++大学B组 【考生须知】 考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。 考试时间为4小时。考试期间选手可浏览自己已经提交的答案,被浏览的答案允许拷贝。时间截止后,将无法继续提交或浏览答案。 对同一题目,选手可多次提交答案,以最后一次提交的答案为准。 选手必须通过浏览器方式提交自己的答案。选手在其它位置的作答或其它方式提交的答案无效。 试题包含“结果填空”和“程序设计”两种题型。 结果填空题:要求选手根据题目描述直接填写结果。求解方式不限。不要求源代码。把结果填空的答案直接通过网页提交即可,不要书写多余的内容。 程序设计题:要求选手设计的程序对于给定的输入能给出正确的输出结果。考生的程序只有能运行出正确结果才有机会得分。 注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。选手的程序必须是通用的,不能只对试卷中给定的数据有效。 对于编程题目,要求选手给出的解答完全符合GNU C/C++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。 代码中允许使用STL类库。 注意:main函数结束必须返回0 注意:所有依赖的函数必须明确地在源文件中#include,不能通过工程设置而省略常用头文件。 所有源码必须在同一文件中。调试通过后,拷贝提交。 提交时,注意选择所期望的编译器类型。 第十一届蓝桥杯大赛软件类省赛第三场1

第十一届蓝桥杯大赛软件类省赛第三场C/C++大学B组 试题A:数青蛙 本题总分:5分 【问题描述】 “一只青蛙一张嘴,两只眼睛四条腿。两只青蛙两张嘴,四只眼睛八条腿。三只青蛙三张嘴,六只眼睛十二条腿。……二十只青蛙二十张嘴,四十只眼睛八十条腿。” 请问上面这段文字,如果完全不省略,全部写出来,从1到20只青蛙,总共有多少个汉字。 约定:数字2单独出现读成“两”,在其他数里面读成“二”,例如“十二”。10读作“十”,11读作“十一”,22读作“二十二”。 请只计算汉字的个数,标点符号不计算。 【答案提交】 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。 试题A:数青蛙2

2014年第五届蓝桥杯预赛题目及标准答案

第十题 标题:小朋友排队 n 个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。 每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是0。 如果某个小朋友第一次被要求交换,则他的不高兴程度增加1,如果第二次要求他交换,则他的不高兴程度增加2(即不高兴程度为3),依次类推。当要求某个小朋友第k次交换时,他的不高兴程度增加k。 请问,要让所有小朋友按从低到高排队,他们的不高兴程度之和最小是多少。 如果有两个小朋友身高一样,则他们谁站在谁前面是没有关系的。 【数据格式】 输入的第一行包含一个整数n,表示小朋友的个数。 第二行包含n 个整数H1 H2 …Hn,分别表示每个小朋友的身高。 输出一行,包含一个整数,表示小朋友的不高兴程度和的最小值。 例如,输入: 3 3 2 1 程序应该输出: 9 【样例说明】 首先交换身高为3和2的小朋友,再交换身高为3和1的小朋友,再交换身高为2和1的小朋友,每个小朋友的不高兴程度都是3,总和为9。 【数据规模与约定】 对于10%的数据,1<=n<=10; 对于30%的数据,1<=n<=1000; 对于50%的数据,1<=n<=10000; 对于100%的数据,1<=n<=100000,0<=Hi<=1000000。 资源约定: 峰值内存消耗< 256M CPU消耗< 1000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入...”的多余内容。 所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。 注意: main函数需要返回0 注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。注意: 所有依赖的函数必须明确地在源文件中#include ,不能通过工程设置而省略常用头文件。 提交时,注意选择所期望的编译器类型。 10 #include #include #include #include using namespace std; struct People { int top; int step; }; struct Cmp { bool operator()(const People &m, const People &n)const {

第七届蓝桥杯大赛2016年蓝桥杯个人赛 (电子类) 省赛 单片机设计与开发科目

准考证号 工位号 注意:只填写准考证号和工位号,否则试卷作废 密 封 线 ----------------------------------------------------------------------------- 第七届蓝桥杯全国软件和信息技术专业人才大赛个人赛 (电子类)省赛 单片机设计与开发科目 竞赛时间:5小时 题 号 一 二 三 总 分 配 分 10 30 60 100分 得 分 “模拟风扇控制系统”设计任务书 功能简述 “模拟风扇控制系统”能够模拟电风扇工作,通过按键控制风扇的转动速度和定时时间, 数码管实时显示风扇的工作模式,动态倒计时显示剩余的定时时间,系统主要由数码管显示、单片机最小系统、按键输入和电机控制保护电路组成,系统框图如图1所示: 图1. 系统框图 单总线驱动程序、CT107D 单片机考试平台电路原理图以及本题所涉及到的芯片数据手册,可参考计算机上的电子文档。程序流程图及相关工程文件请以考生号命名,并保存在计算机上的考生文件夹中(文件夹名为考生准考证号,文件夹保存在监考员指定位置)。 DS18B20 MCU 按键输入 LED 指示灯 数码管显示 PWM 输出

设计任务及要求 1.工作模式 设备具有“睡眠风”、“自然风”和“常风”三种工作模式可以通过按键切换,通过单片机P34引脚输出脉宽调制信号控制电机运行状态,信号频率为1KHz。 1.1“睡眠风”模式下,对应PWM占空比为20%; 1.2“自然风”模式下,对应PWM占空比为30%; 1.3“常风”模式下,对应PWM占空比为70%; 2.数码管显示 数码管实时显示设备当前工作模式和剩余工作时间(倒计时),如图2所示。 - 1 - 80 0 5 0 工作模式:睡眠风熄灭剩余工作时间:50秒 图2.工作模式和剩余工作时间显示 “睡眠风”状态下,对应数码管显示数值为1,自然风模式下,显示数值为2,常风模式下,显示数值为3。 3.按键控制 使用S4、S5、S6、S7四个按键完成按键控制功能。 2.1 按键S4定义为工作模式切换按键,每次按下S4,设备循环切换三种工作模式。 工作过程如下: 睡眠风自然风常风 2.2 按键S5定义为“定时按键”每次按下S5,定时时间增加1分钟,设备的剩余 工作时间重置为当前定时时间,重新开始倒计时,工作过程如下: 0分钟1分钟2分钟 设备剩余工作时间为0时,停止PWM信号输出。 2.3 按键S6定义为“停止”按键,按下S6按键,立即清零剩余工作时间,PWM 信号停止输出,直到通过S5重新设置定时时间。 2.4 按键S7定义为“室温”按键,按下S7,通过数码管显示当前室温,数码管显 示格式如图3所示,再次按下S7,返回图2所示的工作模式和剩余工作时间

蓝桥杯软件设计大赛自测评分标准

2013模拟赛自测评分标准 1.结果填空题 得分或不得分,没有中间结果。 结果必须完全正确才能得分。 结果中含有引导或尾随的空白将被忽略,不扣分。 但,结果中含有中文空白字符或标点符号,按错误处理。 结果中含有不必要的多余内容(说明文字、标点符号等),按错误处理。 2.代码填空题 得分或不得分,没有中间结果。 取出首尾空白,若与参考答案完全一致,则得分。 把自己的答案带入到“评分标准”提供的验证代码中,运行程序得到期望结果的,得分。 其它情况不得分。例如: 因为使用了中文符号或空白而不通过的,按错误处理。 因为多写了已有代码或符号而不通过的,按错误处理。 因为拷贝过程中漏掉字符而不通过的,按错误处理。 因为只针对考题中的数据而使用验证代码中的数据不通过的,按错误处理。 运行超过10秒钟没有停止的,按错误处理。 3.编程大题 每个测试用例单独计分。 本次比赛各个用例均分题目的分值。四舍五入保留小数后3位。统计总分时,四舍五入保留到小数后1位。 首先编译自己的代码。编译发生错误则本题0分。 编译通过的程序采用控制台命令进行输入输出重定向测试。 例如,c组的程序执行文件为a.exe 则: a < in1.txt > out.txt 然后比较out.txt 与out1.txt 若相同则本用例得分。 如果是java组,编译后的文件为:A.class 则: java A < in1.txt > out.txt 然后比较out.txt 与out1.txt 若相同则本用例得分。 注意: 因为选择编程环境错误而编译不通过的,按0分处理。 输出文件格式与参考标准不一致的,本用例0分。 运行时间超过1分钟未出结果的,本用例0 分。 第1/1 页

2014年第五届蓝桥杯预赛题目JAVA软件开发高职高专组

2014年预赛Java高职高专组 考生须知: ●考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压。 ●考试时间为4小时。时间截止后,选手无法继续提交答案。 ●在考试强制结束前,选手可以主动结束考试(需要身份验证),结束考试后将无法继续提交或浏览答案。 ●选手可浏览自己已经提交的答案。被浏览的答案允许拷贝。 ●对同一题目,选手可多次提交答案,以最后一次提交的答案为准。 ●参赛选手切勿在提交的代码中书写“姓名”、“考号”,“院校名”等与身份有关的信息或其它与竞赛题目无关的内容,否则成绩无效。 ●参赛选手必须通过浏览器方式提交自己的答案。选手在其它位置的作答或其它方式提交的答案无效。 ●试题包含三种类型:“结果填空”、“代码填空”与“程序设计”。 结果填空题:要求参赛选手根据题目描述直接填写结果。求解方式不限。不要求源代码。把结果填空的答案直接通过网页提交即可,不要书写多余的内容,比如:注释说明。 代码填空题:要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。所填写的代码不超过一条语句(即中间不能出现分号)。 把代码填空的答案(仅填空处的答案,不包括题面已存在的代码)直接通过网页提交即可,不要书写多余的内容,比如:注释或说明文字。 程序设计题目:要求选手设计的程序对于给定的输入能给出正确的输出结果。考生的程序只有能运行出正确结果,才有机会得分。 注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。选手的程序必须是通用的,不能只对试卷中给定的数据有效。 所有源码必须在同一文件中。调试通过后,拷贝提交。 注意:不要使用package语句。源程序中只能出现JDK1.6中允许的语法或调用。不能使用1.7或更高版本的特性。 注意:选手代码的主类名必须为:Main,否则会被判为无效代码。 1.结果填空(满分2分) 问题的描述在考生文件夹下对应题号的“题目.txt”中。相关的参考文件在同一目录中。请仔细阅读题目,不限解决问题的方式,只要求提交结果。 必须通过浏览器提交答案。 只提交题目要求的内容,不要填写任何多余的文字!! 2.结果填空(满分4分) 问题的描述在考生文件夹下对应题号的“题目.txt”中。相关的参考文件在同一目录中。请先阅读题目,不限解决问题的方式,只要求提交结果。 必须通过浏览器提交答案。

2018蓝桥杯试题

2018蓝桥杯C语言b组国赛真题 1.标题:换零钞 x星球的钞票的面额只有:100元,5元,2元,1元,共4种。 小明去x星旅游,他手里只有2张100元的x星币,太不方便,恰好路过x星银行就去换零钱。 小明有点强迫症,他坚持要求200元换出的零钞中2元的张数刚好是1元的张数的10倍, 剩下的当然都是5元面额的。 银行的工作人员有点为难,你能帮助算出:在满足小明要求的前提下,最少要换给他多少张钞票吗? (5元,2元,1元面额的必须都有,不能是0) 注意,需要提交的是一个整数,不要填写任何多余的内容。 手算都可以。。。下面是代码,答案74 1.#include https://www.360docs.net/doc/61978678.html,ing namespace std; 3.int main(){ 4.for(int i=1;i<40;i++){ 5.for(int j=1;j<200;j++){ 6.if(5*i+2*10*j+1*j==200) 7. cout<<"5*"<

12.2.标题:激光样式 x星球的盛大节日为增加气氛,用30台机光器一字排开,向太空中打出光柱。 安装调试的时候才发现,不知什么原因,相邻的两台激光器不能同时打开! 国王很想知道,在目前这种bug存在的情况下,一共能打出多少种激光效果? 显然,如果只有3台机器,一共可以成5种样式,即: 全都关上(sorry, 此时无声胜有声,这也算一种) 开一台,共3种 开两台,只1种 30台就不好算了,国王只好请你帮忙了。 要求提交一个整数,表示30台激光器能形成的样式种数。 注意,只提交一个整数,不要填写任何多余的内容。 思路很简单,暴力搜索,30个灯光从左到右,从左边第一个开始,第一个可以开关,第二个要根据左边的灯光是否开启来取值,以此类推。。。答案2178309 1.#include 2.#include https://www.360docs.net/doc/61978678.html,ing namespace std; 4.int ans = 0; 5.int x[31];//0代表关,1代表开 6. 7.void dfs(int index){ 8.if(index == 30){ 9.ans++; 10.return; 11.} 12.if(index == 0 || x[index-1] == 0){ //第一个灯光可以取0或1,当前灯 光左边要是没开,那当前灯光可以取0和1 13.for(int i=0;i<=1;i++){ 14.x[index] = i;

第五届蓝桥杯计算比赛省赛真题

标题:武功秘籍 小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的)。他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上。 小明只想练习该书的第81页到第92页的武功,又不想带着整本书。请问他至少要撕下多少张纸带走? 这是个整数,请通过浏览器提交该数字,不要填写任何多余的内容。 标题:等额本金 小明从银行贷款3万元。约定分24个月,以等额本金方式还款。 这种还款方式就是把贷款额度等分到24个月。每个月除了要还固定的本金外,还要还贷款余额在一个月中产生的利息。 假设月利率是:0.005,即:千分之五。那么, 第一个月,小明要还本金1250, 还要还利息:30000 * 0.005,总计1400.00 第二个月,本金仍然要还1250, 但利息为:(30000-1250) * 0.005 总计1393.75 请问:小明在第15个月,应该还款多少(本金和利息的总和)? 请把答案金额四舍五入后,保留两位小数。注意:32.5,一定要写为:32.50 通过浏览器提交答案,这是一个含有小数点和两位小数的浮点数字。不要写多余内容(例如:多写了“元”或添加说明文字) 标题:猜字母 把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。 接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。 得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。 答案是一个小写字母,请通过浏览器提交答案。不要填写任何多余的内容。 标题:大衍数列 中国古代文献中,曾记载过“大衍数列”, 主要用于解释中国传统文化中的太极衍生原理。 它的前几项是:0、2、4、8、12、18、24、32、40、50 ... 其规律是:对偶数项,是序号平方再除2,奇数项,是序号平方减1再除2。 以下的代码打印出了大衍数列的前100 项。 int main() { int i; for(i=1; i<100; i++){ if(__________________) //填空 printf("%d ", i*i/2); else printf("%d ", (i*i-1)/2); }

(完整)蓝桥杯大赛青少年创意编程Scratch初级组模拟题(3)

一、单选题(每题20分) 1、(难度系数1)在舞台添加小猫角色,它的所有设置均为默认设置。舞台布局和程序运行舞台布局程序运行结果 运行以下哪段程序后,可以得到以上结果。() A B C D以上程序都不对 2、(难度系数2)小猫看到远处好久不见的朋友,于是跳起来说“你好!”想引起朋友的注意,执行以下程序后,小猫说“你好!”一共几秒?() A 0 B 2 C4 D 8

3、(难度系数3)当角色执行完这段程序后,舞台可能出现的图形是?() A、正三角形 B、正四边形 C、正六边形 D、正八边形 4、(难度系数4)执行完这段程序后,变量b的值可能是?() A、11 B、65 C、130 D、6065

5、(难度系数5)小红想做一个月亮围绕地球旋转的动画,如图,舞台有两个角色:“地球”“月球”,并写如下程序,小红希望运行程序后,月球以地球为中心做圆周运动。() A、B、 B、D、

1、难度系数2,满分50分 准备工作:导入背景库中的“bedroom2”,并导入角色库中的“Abby”“Candy”角色。 编程实现: Abby打扫完房间,房间停电了,Abby点上了一根蜡烛。想象停电后,点上蜡烛的效果。 图1.“关灯以前” 图2.“关灯后”

1、程序开始运行时,显示如图1.“关灯以前” 2、2秒以后,背景变暗,屏幕左边的墙上出现比小猫自身还要大的影子,如图2.“关灯后”。 3、之后一直保持图2效果 4、蜡烛、Abby、影子之间和大小应大致正确。 将程序保存在桌面,命名为“1.sb2” 评判标准: 10分:程序运行后,按图1的效果显示并保持至少2秒钟; 30分:在10分的基础上,能按图2的要求背景变暗,出现Abby阴影; 50分:在30分的基础上,背景中的圣诞树仍可见,蜡烛、Abby、影子之间的位置关系 基本正确,Abby和影子的大小关系符号逻辑。 2、难度系数3,满分50分 编程实现:今天天气多云,小熊在海边散步,他的头顶飘来一朵云,一阵风吹来,云飘走了,越飘越远,最后消失在空中。 具体要求: 1、舞台背景选择图示背景,增加云朵、小熊角色。 2、程序开始运行时,“小熊”“云朵”角色出现在图1所示的位置。 3、“云朵”角色能实现“从小熊头顶飘离,并向右上角平滑地漂移,越飘越高,越飘越小,直到最后消失”的动画效果。 将程序保存在桌面,命名为“2.sb2” 图1 图2 图3 图4

蓝桥杯第一届初赛题目

第一届蓝桥杯预赛试题 c 本科 第一题,以下函数的功能是将任意整数进行因式分解, 请完成该程序的空缺使函数能够正常运算 void f(int n) { for(int i=2; i1) printf(“%d\n”, n); } 第二题,以下函数的功能是将给定字符串进行倒序输出,请完成该函数空缺部分。 char* p = “abcdef”; char* q = (char*)malloc(strlen(p)+1); for(int i=0, int len=strlen(p); i

q__1__ = p[i+1]; q[len-1] = p[0]; —–(2)—-; prin tf(“%s\n”, q); 第三题, int f(int m, int n) { int a = 1; int m1 = m; //—–(3)—- a *= m1–; int b = 1; while(n>1) b *= n–; return a / b; } 第四题,任意给出一个四位数, 把它重新组成一个四位的最大数和一个最小数, 算出两者间的差。 例如:3721这个数,可以重组成:7321和1237,相数之差为7321-1237 请完善下面这个函数,以实现此功能 int f(int n) { int N[4];

for(int i=0; i<4; i++) { N[3-i] = n % 10; —-(4)—- } for(i=0; i<3; i++) for(int j=0; j<3-i; j++) if(N[j]>N[j+1]) { int t = N[j+1]; N[j+1] = N[j]; N[j] = t; } int n_min=0; for(i=0; i<4; i++) n_min = n_min * 10 + N[i] ; int n_max = 0; for(i=3; i>=0; i–) n_max = n_max * 10 + N[i]; return n_max-n_min; } 第五题,假设有m+n个人,其中, m个人手持面额为5角的硬币, n个人手持面额为1元的硬币,

2014第五届蓝桥杯JAVA本科B组试题及答案

2014第五届蓝桥杯JAVA本科B组试题及答案 1. 武功秘籍小明到X山洞探险 2000 10页和第1111页和第12页不在同一张纸上。 小明只想练习该书的第81页到第92 撕 80,81 82,8384,8586,87888990,9192,93 2. 切面条2根面条。 如果先对折13根面条。 如果连续对折25根面条。 10 1025 import java.util.Scanner; public class Main { public static void main(String []args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int num = (int)Math.pow(2, n) + 1; System.out.println(num); //结果:2015 } } 3. 猜字母把abcd...s共19个字母组成的序列重复拼接1062014的串。

接下来删除第1a35个等所有奇数位置的 字母。 写 出该字母。 q import java.util.Scanner; /** * 该程序类似与约瑟夫环的问题 */ public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); String str = "abcdefghijklmnopqrs"; String str1 = ""; for(int i = 0;i < 106;i++){ str1 = str1 + str;

蓝桥杯软件设计大赛习题

1.语法知识vs 任务型 int i = 0; while(i>3) ++i; // 循环几次? 10! 共有几位数字? 100! 呢? 2.描述性vs 确定性 c语言宏定义与内联函数有什么区别? Java static 可否修饰内部类? 一幅随机排列的扑克牌(52张),随机抽取5张,含有“对子”的概率是多少?“同花顺”的概率呢? 3.二阶魔方旋转 魔方可以对它的6个面自由旋转。 我们来操作一个2阶魔方(如图1所示): 为了描述方便,我们为它建立了坐标系。 各个面的初始状态如下: x轴正向:绿 x轴反向:蓝 y轴正向:红 y轴反向:橙 z轴正向:白 z轴反向:黄 假设我们规定,只能对该魔方进行3种操作。分别标记为:

x 表示在x轴正向做顺时针旋转y 表示在y轴正向做顺时针旋转z 表示在z轴正向做顺时针旋转 xyz 则表示顺序执行x,y,z 3个操作

题目的要求是: 从标准输入获得一个串,表示操作序列。 程序输出:距离我们最近的那个小方块的3个面的颜色。 顺序是:x面,y面,z面。 例如:在初始状态,应该输出: 绿红白 初始状态下,如果用户输入: x 则应该输出: 绿白橙 初始状态下,如果用户输入: zyx 则应该输出: 红白绿 4.连通单体面积统计 BMP是常见的图像存储格式。 如果用来存黑白图像(颜色深度=1),则其信息比较容易读取。 与之相关的数据: (以下偏移均是从文件头开始) 偏移:10字节, 长度4字节:图像数据真正开始的位置。

偏移:18字节, 长度4字节:位图的宽度,单位是像素。 偏移:22字节, 长度4字节:位图的高度,单位是像素。 从图像数据开始处,每个像素用1个二进制位表示。 从图片的底行开始,一行一行向上存储。 Windows规定图像文件中一个扫描行所占的字节数必须是4字节的倍数,不足的位均以0 填充。例如,图片宽度为45像素,实际上每行会占用 8个字节。 可以通过Windows自带的画图工具生成和编辑二进制图像。 需要在“属性”中选择“黑白”,指定为二值图像。 可能需要通过查看| 缩放| 自定义... 把图像变大比例一些, 更易于操作。 图像的左下角为图像数据的开始位置。白色对应1,黑色对应0 我们可以定义:两个点距离如果小于2个像素,则认为这两个点连通。 也就是说:以一个点为中心的九宫格中,围绕它的8个点与它都是连通的。如:t1.bmp 所示,左下角的点组成一个连通的群体; 而右上角的点都是孤立的。 程序的目标是:根据给定的黑白位图,分析出所有独立连通的群体, 输出每个连通群体的面积。所谓面积,就是它含有的像素的个数。 输入数据固定存在in.bmp中。 如示例的in.bmp, 程序应该输出: 12 81 52 133 该输出表示:共有4个连通群体。 输出的连通体面积间的顺序可以随意。

蓝桥杯比赛相关事项

蓝桥杯比赛相关事项 1.竞赛时间 省赛时长:4小时,6个组别同时进行。 决赛时长:4小时。决赛详细赛程安排另行通知。 详细赛程安排另行通知。 2.竞赛形式 个人赛。 一人一机,全程机考。 选手机器通过局域网连接到各个考场的竞赛服务器。选手答题过程中不允许访问互联网,也不允许使用本机以外的资源(如USB连接)。 以“服务器-浏览器”方式发放试题、回收选手答案。 3.c/c++ 语言开发环境: ·Dev-cpp 5.4.0 支持ANSI C,ANSIC++,STL ·c/c++ API 帮助文档(中文,chm格式) 4.试题形式 竞赛题目完全为客观题型。 根据选手所提交答案的测评结果为评分依据。 5.1.结果填空题 ·题目描述一个具有确定解的问题。要求选手对问题的解填空。 ·不要求解题过程,不限制解题手段(可以使用任何开发语言或工具,甚至是手工计算),只要求填写最终的结果。 5.2.代码填空题 ·题目描述一个具有确定解的问题。 ·题目同时给出该问题的某一解法的代码,但其中有缺失部分。 要求选手读懂代码逻辑,对其中的空缺部分补充代码,使整段代码完整。只填写空缺部分,不要填写完整句子。 不要写注释、说明或其它题目中未要求的内容。 5.3.编程大题 题目为若干具有一定难度梯度、分值不等的编程题目。 这些题目的要求明确、答案客观。 题目一般要用到标准输入和输出。要求选手通过编程,对给定的标准输入求解,并通过标准输出,按题目要求的格式输出解。题目一般会给出示例数据。 一般题目的难度主要集中于对算法的设计和逻辑的组织上。理论上,选手不可能通过猜测或其它非编程的手段获得问题的解。 选手给出的解法应具有普遍性,不能只适用于题目的示例数据(当然,至少应该适用于题目的示例数据)。 为了测试选手给出解法的性能,评分时用的测试用例可能包含大数据量的压力测试用例,选手选择算法时要尽可能考虑可行性的问题。

2014第五届蓝桥杯JAVA本科B组试题答案

2014第五届蓝桥杯JAVA本科B组试题及答案? 1. 武功秘籍 答案:(80,81);(82,83);(84,85);(86,87);(88,89);(90,91);(92,93)? 2. 切面条 答案:1025 import java.util.Scanner; public class Main { public static void main(String []args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int num = (int)Math.pow(2, n) + 1; System.out.println(num); //结果:2015 } } ? 3. 猜字母

答案:q import java.util.Scanner; /** * 该程序类似与约瑟夫环的问题 */ public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); String str = "abcdefghijklmnopqrs"; String str1 = ""; for(int i = 0;i < 106;i++){ str1 = str1 + str; } System.out.println(str1.length()); boolean[] arr = new boolean[str1.length()]; for(int i=0; i 1) { if(arr[index] == true) { //当在圈里时 if(countNum%2 == 0) { //下标为偶数时 arr[index] = false; //该字母退出圈子 leftCount --; //剩余字母数目减一 } countNum++; } index ++; //每报一次数,下标加一

蓝桥杯比赛要求

七、奖项设置及评选办法 7.1 省赛 1.参赛选手奖 省赛每个组别设置一、二、三等奖,比例分别为10%、20%、30%,总比例为实际参赛人数的60%,零分卷不得奖。省赛一等奖选手获得直接进入全国总决赛资格。所有获奖选手均可获得由工业和信息化部人才交流中心及大赛组委会联合颁发的获奖证书。 2.指导教师奖 省赛中获奖的参赛选手的指导教师将获得“蓝桥杯全国软件和信息技术专业人才大赛(××赛区)优秀指导教师”称号。 3.参赛学校奖 参赛组织工作表现突出、经审批符合相关条件的单位,将获得“蓝桥杯全国软件和信息技术专业人才大赛(××赛区)优秀组织单位”称号; 参赛选手成绩优异,经审批符合相关条件的学校将获得“蓝桥杯全国软件和信息技术专业人才大赛(××赛区)优胜学校”称号。 7.2 总决赛 全国总决赛按参赛项目和成绩,为获奖学生、教师和组织单位颁发相应证书和奖 励。其中: 1.参赛选手奖 个人赛根据相应组别分别设立特、一、二、三等奖及优秀奖。在决赛奖项设置中, 每个组别设置特等奖1名,一等奖不高于5%,二等奖占20%,三等奖不低于25%,优秀奖 不超过50%,零分卷不得奖。 所有获奖选手均可获得由工业和信息化部人才交流中心及大赛组委会联合颁发的获 奖证书。 大学组总决赛三等奖及以上选手,如果获得本校免试推研资格,将获得北京大学软 件与微电子学院等院校的面试资格,并优先录取为该院普通硕士研究生。 大学组总决赛三等奖及以上选手,可免除笔试,直接获得百度、IBM等企业在员工 招聘及实习生招聘中的面试机会。 2.指导教师奖 所有获奖选手的指导教师,均可获得“蓝桥杯全国软件和信息技术专业人才大赛优秀 指导教师”证书。 3.参赛学校奖 参赛组织工作成绩突出、经审批符合相关条件的单位,获“蓝桥杯全国软件和信息技 术专业人才大赛优秀组织单位”称号; 参赛选手成绩优异、经审批符合相关条件的学校,获“蓝桥杯全国软件和信息技术专 业人才大赛优胜学校”称号。

蓝桥杯试题标准答案(练习)

1、亲密数:假设有a、b两个数,若a的所有因子之和等于b,b的所有因子之和等于a,并且a不等于b,则称a和b是一对亲密数。如284和220就是一对亲密数。 #include int main() { int a,b,i,n; for(a=1;a<=10000;a++) { for(b=0,i=1;i<=a/2;i++) if(a%i==0) b+=i; for(n=0,i=1;i<=b/2;i++) if(b%i==0) n+=i; if(n==a&&a!=b&&a

int main() { long days = 5; /*1999年的最后一天为周5,把下一年加上5天对7取余为0的,则是周日*/ int i = 2000; for(;;) /*无循环终止条件,可以利用break语句终止循环*/ { if(i%4==0&&i%100!=0||i%400==0) { days = days%7+366; } else { days = days%7+365; } if(days%7==0&&i%100==99) { printf("%d",i); break; } i++; } return 0; } 3、马虎的算式:小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。

相关文档
最新文档