2014蓝桥杯湖师校内选拔赛试题及参考代码

合集下载

蓝桥杯少儿编程比赛14届题解c++

蓝桥杯少儿编程比赛14届题解c++

蓝桥杯少儿编程比赛14届题解c++蓝桥杯少儿编程比赛是一个旨在培养孩子们编程能力的比赛。


年都会出现一系列有趣而富有挑战性的题目,对少儿的思维能力和编
程技巧提出了很高的要求。

而本文的目的就是为大家提供14届蓝桥杯
少儿编程比赛的题解和C++代码实现,帮助题目理解和解答。

2.题解及代码实现
2.1 题目一:xxx
这道题目要求我们实现xxx功能。

首先我们对题目进行分析,然
后给出解题思路和具体的C++代码实现。

代码中会涉及到xxx库和函数的使用,我们将逐步展示相应的代码段,并给出详细的解释。

2.2 题目二:xxx
针对这道题目,我们需要解决的是xxx问题。

通过仔细阅读题目,我们可以得出一些关键的情报和解题线索。

接下来,我们将逐步展示
解题步骤和代码实现,并给出必要的说明和解释,帮助读者完全理解。

2.3 题目三:xxx
在这一题中,我们需要编写一个程序来实现xxx功能。

同样地,
我们将逐步展示解题的过程和C++代码的实现,并提供具体的解题思路和解析。

通过本文的介绍,我们对14届蓝桥杯少儿编程比赛的题目有了较
为全面的了解,并通过具体的代码实现和解析,帮助读者理解和掌握
题目的解题思路和方法。

希望本文对蓝桥杯少儿编程比赛的参赛者有
所帮助,并鼓励大家积极参与比赛,努力提升自己的编程技能。

以上就是《蓝桥杯少儿编程比赛14届题解C++》的内容,希望对
大家有所启发。

如有任何疑问或错误之处,请多多指正。

祝大家在编
程的世界中取得好成绩!。

2014蓝桥杯c语言试题及答案

2014蓝桥杯c语言试题及答案

2014蓝桥杯c语言试题及答案2014蓝桥杯是指中国中学生计算机设计大赛,是一个重要的计算机技能竞赛。

C语言作为计算机编程的基础语言,也是该竞赛的主要考核对象。

以下是2014蓝桥杯C语言试题及答案,希望对广大参赛选手有所帮助。

题目一:请编写一个C语言程序,输出1到100之间所有能被3和5同时整除的数。

答案一:```c#include <stdio.h>int main(){int i;for (i = 1; i <= 100; i++){if (i % 3 == 0 && i % 5 == 0){printf("%d ", i);}return 0;}```题目二:请编写一个C语言程序,实现计算一个整数的阶乘。

答案二:```c#include <stdio.h>int factorial(int n){if (n == 0){return 1;}else{return n * factorial(n - 1);}int main(){int num;printf("请输入一个整数:");scanf("%d", &num);int result = factorial(num);printf("%d的阶乘为:%d\n", num, result);return 0;}```题目三:请编写一个C语言程序,统计一个字符串中字母、数字和其他字符的个数。

答案三:```c#include <stdio.h>#include <ctype.h>int main(){char str[100];int i, alphabets = 0, digits = 0, others = 0; printf("请输入一个字符串:");fgets(str, sizeof(str), stdin);for (i = 0; str[i] != '\n'; i++){if (isalpha(str[i])){alphabets++;}else if (isdigit(str[i])){digits++;}else{others++;}}printf("字母个数:%d\n", alphabets);printf("数字个数:%d\n", digits);printf("其他字符个数:%d\n", others);return 0;}```题目四:请编写一个C语言程序,实现冒泡排序算法对一个整型数组进行从小到大排序。

2014蓝桥杯决赛A组第4题(java)

2014蓝桥杯决赛A组第4题(java)
bcda 9
bdac 10
bdca 11
cabd 12
cadb 13
cbad 14
cbda 15
cdab 16
cdba 17
...
现在有不多于10个两两不同的小写字母,给出它们组成的串,你能求出该串在所有排列中的序号吗?
【输入格式】
一行,一个串。
【输出格式】
一行,一个整数,表示该串在其字母所有排列生成的串中的序号。注意:最小的序号是0。
例如:
输入:
bdca
程序应该输出:
11
再例如:
输入:
cedab
程序应该输出:
70
资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms

标题:排列序数
如果用a b c d这4个字母组成一个串,有4!=24种,如果把它们排个序,每个串都对应一个序号:
abcd 0
abdc 1
acbd 2
acdb 3
adbc 4
adcb 5
bacd 6
badc 7
bcad 8
请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
注意:主类的名字必须是:Main,否则按无效代码处理。

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

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

第七题标题:六角填数如图【1.png】所示六角形中,填入1~12的数字。

使得每条直线上的数字之和都相同。

图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?请通过浏览器提交答案,不要填写多余的内容。

7#include <cstdio>using namespace std;int arr[15], have[15];int Fun(int i){if(i == 13){int result[6];result[0] = arr[1] + arr[2] + arr[3] + arr[4], result[1] = arr[4] + arr[5] + arr[6] + arr[7];result[2] = arr[7] + arr[8] + arr[9] + arr[1], result[3] = arr[10] + arr[3] + arr[5] + arr[11];result[4] = arr[11] + arr[6] + arr[8] + arr[12], result[5] = arr[12] + arr[9] + arr[2] + arr[10];int end = 1;for(int m = 0; m < 6; m++)for(int n = m + 1; n < 6; n++)if(result[m] != result[n])end = 0;if(end){for(int i = 1; i <= 12; i++)printf("%d ", arr[i]);putchar(10);for(int i = 1; i <= 12; i++)printf("%d ", have[i]);putchar(10);getchar();}}if(i == 1 || i == 7 || i == 10)Fun(i + 1);if(!(i == 1 || i == 7 || i == 10)){for(int j = 1; j <= 12; j++){if(!have[j]){arr[i] = j;have[j] = 1;Fun(i + 1);have[j] = 0;}}}}int main(){arr[1] = 8; arr[7] = 3; arr[10] = 1;have[1] = have[3] = have[8] = 1;Fun(1);return 0;}。

蓝桥省赛14届真题

蓝桥省赛14届真题

Python蓝桥省赛真题讲评选择题蓝桥省赛真题—选择篇1. 下列哪个是执行以下Python代码,输出的结果是()A、abcabcB、abcC、lst+lstD、abc+abc1. 下列哪个是执行以下Python代码,输出的结果是(A)A、abcabcB、abcC、lst+lstD、abc+abc2. 导入random标准库,执行print(random.randrange(2, 20, 2)),可能的输出结果是()A、2B、5C、13D、202. 导入random标准库,执行print(random.randrange(2, 20, 2)),可能的输出结果是(A)A、2B、5C、13D、203. 以下关于python中复数描述,错误的是()A、复数可以看作二元有序浮点数(x, y)B、实部和虚部都是浮点数C、虚数部分的后缀可以是j也可以是JD、已知复数a,可以使用a.real获得虚数部分 ​3. 以下关于python中复数描述,错误的是(D)A、复数可以看作二元有序浮点数(x, y)B、实部和虚部都是浮点数C、虚数部分的后缀可以是j也可以是JD、已知复数a,可以使用a.real获得虚数部分 ​4. 以下选项哪一个是转为整数的函数()A、str()B、int()C、float()D、list()​4. 以下选项哪一个是转为整数的函数(B)A、str()B、int()C、float()D、list()​5. 执行以下代码,输出结果是()A、<class 'set'>B、<class 'int'>C、<class 'str'>D、<class 'list'>5. 执行以下代码,输出结果是(D)A、<class 'set'>B、<class 'int'>C、<class 'str'>D、<class 'list'>编程题蓝桥省赛真题——编程篇给定一个正整数N,计算出N + N的值。

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

2014第五届蓝桥杯JAVA本科B组试题及答案解析
if(arr[index] == true) { //当在圈里时
if(countNum%2 == 0) { //下标为偶数时
arr[index] = false; //该字母退出圈子
leftCount --; //剩余字母数目减一
} countNum++;
}
index ++; //每报一次数 下标加一
int n = sc.nextInt();
int num = (int)Math.pow(2, n) + 1;
System.out.println(num);
//结果:2015
}
}
3.猜字母把abcd...s共19个字母组成的序列重复拼接106次 得到长度为2014的串。接下来删除第1个字母 即开头的字母a以及第3个 第5个等所有奇数位置的字母。得到的新串再进行删除奇数位置字母的动作。如此下去 最后只剩下一字母 请写出该字母。
2014第五届蓝桥杯JAVA本科B组试题及答案
1.武功秘籍小明到X山洞探险 捡到一本有破损的武功秘籍2000多页 当然是伪造的 。他意识到 书的第10页和第11页在同一张纸上 但第11页和第12页不在同一张纸上。
小明只想练习该书的第81页到第92页的武功 又不想带着整本书。请问他至少要撕下多少张纸带走
答案是个整数 考虑对称性 肯定是偶数 。请通过浏览器提交。不要书写多余的内容。
答案public class Main {
public static void main(String []args){
int count = 0;
for (int a = 1;a <= 9; a++){
见图1.png

2014蓝桥杯决赛A组第3题(java)

2014蓝桥杯决赛A组第3题(java)

System.out.println(max);
System.out.println(T);
}
}
注意:通过浏览器提交答案。只填写缺少的内容,不要填写任何多余的内容(例如:说明性文字或已有符号)。
if(c_next>=N){
c_next = 0;
r_next++;
}
if(____________________){ // 填空位置
da[r][c] = 1;
f(da, r_next, c_next);
பைடு நூலகம் }
da[r][c] = 0;
if(da[r-i][c-i]==1) n++;
}
for(int i=1; i<N; i++){
if(r+i>=N || c+i>=N) break;
if(da[r+i][c+i]==1) n++;
}
if(n>m) m = n;
//左斜线
f(da, r_next, c_next);
}
static int count(int[][] da)
{
int n = 0;
for(int i=0; i<da.length; i++)
for(int j=0; j<da[i].length; j++)
if(da[i][j]==1) n++;
n=0;
for(int i=0; i<N; i++){

2014蓝桥杯c试题校赛及答案

2014蓝桥杯c试题校赛及答案

2014蓝桥杯c试题校赛及答案2014蓝桥杯C试题校赛及答案1. 题目一:字符串反转给定一个字符串,请编写一个函数,实现字符串的反转。

答案:```cvoid reverseString(char *str) {int len = 0;while (str[len] != '\0') {len++;}for (int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}```2. 题目二:寻找最大值给定一个整数数组,请找出数组中的最大值。

答案:```cint findMax(int arr[], int size) {int max = arr[0];for (int i = 1; i < size; i++) {if (arr[i] > max) {max = arr[i];}}return max;}```3. 题目三:计算阶乘编写一个函数,计算并返回一个非负整数的阶乘。

答案:```cunsigned long long factorial(int n) {if (n == 0) {return 1;}unsigned long long result = 1;for (int i = 1; i <= n; i++) {result *= i;}return result;}```4. 题目四:判断回文数给定一个整数,判断该数是否是回文数。

答案:```cint isPalindrome(int x) {int reversed = 0, original = x;while (x > 0) {int digit = x % 10;reversed = reversed * 10 + digit;x /= 10;}return original == reversed;}```5. 题目五:合并两个有序数组给定两个有序整数数组 nums1 和 nums2,其中 nums1 的长度为 m,nums2 的长度为 n。

第14届蓝桥杯省赛计算思维U10真题带参考

第14届蓝桥杯省赛计算思维U10真题带参考

十四届蓝桥杯省赛考试计算思维U10组第一题晶晶在注册一个学习网站时,需要设置密码。

网站提示:密码必须由8~16个字符组成,可以包含数字、大写字母、小写字母、特殊符号这4种字符类型。

包含4种不同类型字符的密码是强密码;包含2种或3种不同类型字符的密码是中等密码;只包含1种类型字符的密码是弱密码。

以下哪个属于强密码?()A. 88888888B. 6a3FJYFRq0kr7xMC. 5Fh@D. %Rn6$tuE第二题在猴子王国中,猴子妈妈生了一个猴子宝宝。

按照猴子王国的规定,猴子宝宝的名字必须符合以下要求:1.名字只能包括字母、数字、和下划线2.名字不能用数字开头哪一个可以作为猴子宝宝的名字呢?()A. 2houziB. houzi-1C. hou1_D. 321第三题小美设计了一个灯光程序,输入对应的数字编码可以输出灯光,如下图所示:根据规律,在“?”号处输入数字编码(),能够输出对应的灯光。

A. 00322001B. 0322011C. 00232011D. 00323011第四题体育老师对学生喜欢的运动项目进行了一次问卷调查。

有7个同学填写了自己喜欢的运动项目,希望学校开设这些课程。

经统计,每人喜欢的运动项目如下表所示:根据同学们的意愿,请你帮老师做个计划。

至少开设几个运动项目课程,才能保证每个同学都有自己喜欢的运动?()A. 2B. 3C. 4D. 5第五题有一台玩具扭蛋机,可以将一个红球变成3个白球,也可以将一个白球变成两个红球。

思思有3个红球和1个白球,他使用扭蛋机3次,最后拥有的球数最少是()。

A. 6 B. 7C. 8D. 9第六题下面的几种图形指令,可以控制兔子在格子中移动。

兔子接收某种指令后,会向相应方向移动1格。

依次执行下面一串图形指令后,最终兔子会停在哪里?()A. AB. BC. CD. D第七题丽丽最近迷上了剪纸。

她发现了一个有趣的规律:将纸对折一次,纸会变成2层,对折两次变成4层......她按下图的步骤,将纸沿虚线对折3次后,在左边剪半个树叶,如下图所示:打开后,能得到()片完整的树叶。

蓝桥杯少儿编程比赛14届题解c++

蓝桥杯少儿编程比赛14届题解c++

蓝桥杯少儿编程比赛14届题解c++蓝桥杯少儿编程比赛是中国著名的编程竞赛,旨在培养和激发少年儿童对计算机编程的兴趣和创造力。

下面我将为大家介绍一道2014年蓝桥杯少儿编程比赛的题目,并给出C++的解答。

题目:给定一个字符串,找出其中最长的回文子串。

回文是指正读和反读都相同的字符序列。

例如,字符串"abacaba"中最长的回文子串是"aba"。

输入:输入的第一行包含一个整数T,表示测试用例的数量。

接下来的T行每行包含一个字符串。

输出:对于每个测试用例,输出一个字符串,表示最长的回文子串。

示例:输入:2abacabaabcde输出:abaa解题思路:针对这个问题,我们可以使用动态规划来解答。

定义一个二维数组dp[i][j]表示字符串s从第i个字符到第j个字符是否是回文子串,如果是则为true,否则为false。

首先,对于任意的i,dp[i][i]都是true,因为一个字符本身就是一个回文子串。

然后,对于任意的i和j,如果s[i] == s[j]并且j - i <= 2,则s[i]到s[j]也是一个回文子串。

例如,"a"、"aba"、"aa"都是回文子串。

最后,对于其他情况,需要判断s[i]到s[j]是否是回文子串。

如果s[i] == s[j]并且dp[i + 1][j - 1]是true,则s[i]到s[j]也是一个回文子串。

这一步是通过子问题的结果推导出来的。

根据上述思路,我们可以编写如下的C++代码:```cpp#include<iostream>#include<string>#include<vector>using namespace std;string longestPalindrome(string s) {int n = s.length();vector<vector<bool>> dp(n, vector<bool>(n, false));int start = 0; //最长的回文子串的起始位置int maxLength = 0; //最长的回文子串的长度//初始化对角线上的值为truefor (int i = 0; i < n; i++) {dp[i][i] = true;maxLength = 1; //回文子串最短长度为1}//根据状态转移方程填充二维数组for (int j = 1; j < n; j++) {for (int i = 0; i < j; i++) {if (s[i] == s[j]) {if (j - i <= 2) {dp[i][j] = true;} else {dp[i][j] = dp[i + 1][j - 1];}//更新最长回文子串的起始位置和长度if (dp[i][j] && j - i + 1 > maxLength) { start = i;maxLength = j - i + 1;}}}}return s.substr(start, maxLength);}int main() {int T;cin >> T;while (T--) {string s;cin >> s;cout << longestPalindrome(s) << endl;}return 0;}```以上就是对于2014年蓝桥杯少儿编程比赛的题目的解答。

蓝桥杯java试题及答案

蓝桥杯java试题及答案

蓝桥杯java试题及答案蓝桥杯是中国著名的计算机科学与技术竞赛,旨在选拔和培养优秀的计算机人才,尤其是高中和大学的学生。

Java是蓝桥杯竞赛中常见的编程语言之一。

本文将介绍一些常见的蓝桥杯Java试题,并提供相应的答案。

一、编程题1. 题目描述:请编写一个Java程序,实现将一个整数数组中的奇数和偶数分别放在两个新数组中,并按照从小到大的顺序排列。

解题思路:可以使用两个ArrayList来保存奇数和偶数,先遍历原数组,将奇数放入奇数数组,将偶数放入偶数数组,然后分别对两个数组进行升序排序。

代码实现:```javaimport java.util.ArrayList;import java.util.Arrays;import java.util.Collections;public class SplitArray {public static void main(String[] args) {int[] arr = {1, 2, 3, 4, 5, 6};ArrayList<Integer> oddList = new ArrayList<>(); ArrayList<Integer> evenList = new ArrayList<>(); for (int num : arr) {if (num % 2 == 0) {evenList.add(num);} else {oddList.add(num);}}Collections.sort(oddList);Collections.sort(evenList);System.out.println("奇数数组:" + oddList);System.out.println("偶数数组:" + evenList);}}```答案分析:该程序首先定义了一个整型数组 `arr`,然后创建两个ArrayList:`oddList`用于保存奇数,`evenList`用于保存偶数。

2014年蓝桥杯(第5届)预赛本科B组C语言真题解析

2014年蓝桥杯(第5届)预赛本科B组C语言真题解析

2014年蓝桥杯(第5届)预赛本科B组真题解析啤酒和饮料啤酒每罐2.3元,饮料每罐1.9元。

小明买了若干啤酒和饮料,一共花了82.3元。

我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。

注意:答案是一个整数。

请通过浏览器提交答案。

不要书写任何多余的内容(例如:写了饮料的数量,添加说明文字等)。

(1)答案。

11(2)编程思路。

把啤酒、饮料的单价和总共花的钱都乘上10,转换为整数。

然后用循环对啤酒的罐数b(1≤b<823/23)和饮料的罐数c(1≤c<823/19)进行穷举,找出满足要求的啤酒罐数b。

(3)源程序。

#include <stdio.h>int main(){int b,c;for (b=1;b<35;b++)for (c=1;c<45;c++){if((823==b*23+c*19) &&(b<c))printf("%d\n",b);}return 0;}(4)用单重循环完成穷举。

实际上,也可以只对啤酒的罐数进行穷举。

#include <stdio.h>int main(){int b,cSum;for (b=1;b<35;b++){cSum=823-23*b;if (cSum%19==0 && cSum/19>b)printf("%d\n",b);}return 0;}切面条一根高筋拉面,中间切一刀,可以得到2根面条。

如果先对折1次,中间切一刀,可以得到3根面条。

如果连续对折2次,中间切一刀,可以得到5根面条。

那么,连续对折10次,中间切一刀,会得到多少面条呢?答案是个整数,请通过浏览器提交答案。

不要填写任何多余的内容。

(1)答案。

1025(2)编程思路。

由题目可知,对折0次切一刀得到2根,对折1次切一刀得到3根,对折2次切一刀得到5根。

2014年第五届蓝桥杯软件类省赛真题_Java高职

2014年第五届蓝桥杯软件类省赛真题_Java高职

例如, 输入:
5 6
0 0 0 0 0 0
0 0 0 0 0 0
0 0 1 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
2 3 L 5
程序应该输出:
1 3
再例如, 输入:
3 3
0 0 0
1 1 1
1 1 1
1 1 U 6
程序应该输出:
0 0
资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms
注意:主类的名字必须是:Main,否则按无效代码处理。
Java高职
1_题目
标题:猜年龄
小明带两个妹妹参加元宵灯会。别人问她们多大了,她们调皮地说:“我们俩的年龄之积是年龄之和的6倍”。小明又补充说:“她们可不是双胞胎,年龄差肯定也不超过8岁啊。”
请你写出:小明的较小的妹妹的年龄。
注意: 只写一个人的年龄数字,请通过浏览器提交答案。不要书写任何多余的内容。
请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。
注意:主类的名字必须是:Main,否则按无效代码处理。
Java高职
9_题目
标题:地宫取宝
X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。
以下的代码打印出了大衍数列的前 100 项。
for(int i=1; i<100; i++)
{
if(________________) //填空

2014年蓝桥杯官网试题(Java组)

2014年蓝桥杯官网试题(Java组)
n。 输入格式
输入一行,包含一个正整数 n。 输出格式
按从小到大的顺序输出满足条件的整数,每个整数占一行。 样例输入 52 样例输出 899998 989989 998899 数据规模和约定
1<=n<=54。 基础练习 回文数 时间限制:1.0s 内存限制:512.0一样的,编程求所有这样的四位
入门训练 圆的面积 时间限制:1.0s 内存限制:256.0MB
问题描述 给定圆的半径 r,求圆的面积。 输入格式 输入包含一个整数 r,表示圆的半径。 输出格式 输出一行,包含一个实数,四舍五入保留小数点后 7 位,表示圆的面积。 说明:在本题中,输入是一个整数,但是输出是一个实数。 对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后 7 位, 则你的程序必须严格的输出 7 位小数,输出过多或者过少的小数位数都是不行的,都会被认 为错误。 实数输出的问题如果没有特别说明,舍入都是按四舍五入进行。 样例输入 4 样例输出 50.2654825 数据规模与约定 1 <= r <= 10000。 提示
基础练习 数列排序 时间限制:1.0s 内存限制:512.0MB
问题描述 给定一个长度为 n 的数列,将这个数列按从小到大的顺序排列。1<=n<=200
输入格式 第一行为一个整数 n。 第二行包含 n 个整数,为待排序的数,每个整数的绝对值小于 10000。
输出格式 输出一行,按从小到大的顺序输出排序后的数列。
本题对精度要求较高,请注意π的值应该取较精确的值。你可以使用常量来表示π,比如 PI=3.14159265358979323,也可以使用数学公式来求π,比如 PI=atan(1.0)*4。
入门训练 序列求和 时间限制:1.0s 内存限制:256.0MB

[蓝桥杯][2014年第五届真题]分糖果

[蓝桥杯][2014年第五届真题]分糖果

[蓝桥杯][2014年第五届真题]分糖果题⽬描述:问题描述:有n个⼩朋友围坐成⼀圈。

⽼师给每个⼩朋友随机发偶数个糖果,然后进⾏下⾯的游戏:每个⼩朋友都把⾃⼰的糖果分⼀半给左⼿边的孩⼦。

⼀轮分糖后,拥有奇数颗糖的孩⼦由⽼师补给1个糖果,从⽽变成偶数。

反复进⾏这个游戏,直到所有⼩朋友的糖果数都相同为⽌。

你的任务是预测在已知的初始糖果情形下,⽼师⼀共需要补发多少个糖果。

输⼊程序⾸先读⼊⼀个整数N(2< N< 100),表⽰⼩朋友的⼈数。

接着是⼀⾏⽤空格分开的N个偶数(每个偶数不⼤于1000,不⼩于2)输出要求程序输出⼀个整数,表⽰⽼师需要补发的糖果数。

样例输⼊32 2 4样例输出4题意解析:1、偶数个糖:这⾥偶数个糖可分为两部分分别是:I、初始化赋值为偶数II、⽼师额外分配为偶数(num++);2、分糖:将⼀半的糖分给左⼿边的孩⼦:I、简化为直接分给下⼀个⼩孩;II、每个⼩孩的糖数分⼀半给下⼀个并且从上⼀个⼩孩那得到他的⼀半糖;i)是先从别⼈那得到他的⼀半糖后,再将现在的糖数分⼀半给下⼀个⼈,,还是所有⼈先分⼀半糖出来,每个⼈都前⼀个⼈那拿⾛他的⼀半糖?(这两种计算⽅式结果不同,也是本题解题关键;简化后即:先 + 再 / 还是先 / 再 + );3、判断糖数是否相等:I、不相等,跳转到第⼀条第⼆点(1.II),向下执⾏,II、相等,跳出循环,输出num;图解2.II.i:代码实现:#include <stdio.h>#define N 100void main() {int i, n, num = 0, a[N], t;scanf("%d", &n);for (i = 0; i < n; i++) {//scanf("%d", &a[i]);}for (;;) {for (i = 1; i < n; i++) {//i从1开始,表⽰a[0]直接判断与a[1]是否相等,跳过a[0]与a[0]⽐较;if (a[0] != a[i]) {break;//如果第⼀个⼩孩糖的数量与其他⼩孩糖的数量不相等,跳出for循环,往下执⾏}//如果没有进⼊if判断语句,说明所有⼩孩糖数相等,for循环从1执⾏到n-1;}if (i == n) {//接上for循环,当for循环执⾏完了以后,进⾏的操作是i++,此时i = n;所以可以拿来作为结束外循环条件;break;//跳出外层循环}for (i = 0; i < n; i++) {//判断是否有奇数个糖,奇数+1,偶数不变;if (a[i] % 2 == 1) {a[i]++;num++;}}t = a[n - 1];//下⾯分糖实按从后向前遍历,因此最后⼀个⼩孩的糖数在最开始就会改变,⽆法给第⼀个⼩孩赋值,因此需要保存下来; for (i = n - 1; i > 0; i--) {//,分糖(除以2)、得糖(+前⼀个⼈的1/2);a[i] = a[i] / 2 + a[i - 1] / 2;}a[0] = a[0] / 2 + t / 2;//给第⼀个同学实现分糖、得糖;}printf("%d", num);}其中,在分糖和得糖那步可以实现⼩的优化:前⾯代码不变,在判断奇偶时让所有同学的糖数⼀分为⼆;for ( i = 0; i < n; i++){if (a[i]%2==1){a[i]++;sum++;}a[i] /= 2;}temp = a[n - 1];for ( i = n-1; i >0; i--){//a[i] = a[i] / 2 + a[i - 1] / 2; a[i] += a[i - 1];}//a[0] = a[0] / 2 + temp / 2; a[0] += temp;}。

2014年蓝桥杯(第5届)预赛高职高专组C语言真题解析

2014年蓝桥杯(第5届)预赛高职高专组C语言真题解析

2014年蓝桥杯(第5届)预赛高职高专组真题解析武功秘籍小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的)。

他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上。

小明只想练习该书的第81页到第92页的武功,又不想带着整本书。

请问他至少要撕下多少张纸带走?这是个整数,请通过浏览器提交该数字,不要填写任何多余的内容。

(1)答案。

7(2)编程思路。

因为每页页码开始为偶数,终止为奇数,因此若开始页码为奇数或终止页码为偶数,则应多加1页。

(3)源程序。

#include <stdio.h>int main(){int m,n,ans;while (scanf("%d%d",&n,&m)!=EOF){ans=m-n+2;ans/=2;if (n%2!=0 && m%2==0)ans++;printf("%d\n",ans);}return 0;}等额本金小明从银行贷款3万元。

约定分24个月,以等额本金方式还款。

这种还款方式就是把贷款额度等分到24个月。

每个月除了要还固定的本金外,还要还贷款余额在一个月中产生的利息。

假设月利率是:0.005,即:千分之五。

那么,第一个月,小明要还本金1250, 还要还利息:30000 * 0.005,总计1400.00第二个月,本金仍然要还1250, 但利息为:(30000-1250) * 0.005 总计1393.75请问:小明在第15个月,应该还款多少(本金和利息的总和)?请把答案金额四舍五入后,保留两位小数。

注意:32.5,一定要写为:32.50通过浏览器提交答案,这是一个含有小数点和两位小数的浮点数字。

不要写多余内容(例如:多写了“元”或添加说明文字)(1)答案。

1312.50(2)编程思路。

简单循环计算。

(3)源程序。

#include <stdio.h>int main(){double n = 30000;int m = 24;for(int i = 1; i <= m; i++){printf("%d %.2f\n",i,1250+n*0.005);n -= 1250;}return 0;}猜字母把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。

第14届蓝桥杯试题

第14届蓝桥杯试题

第14届蓝桥杯试题第14届蓝桥杯是一项全国性的计算机竞赛,题目难度适中,涵盖了计算机的多个领域,包括编程算法、数据结构、计算机网络和数据库等。

下面是第14届蓝桥杯的部分试题和解答参考内容:1. 编程题目:给定一个数组,找出数组中是否存在两个数的和为给定的目标值。

如果存在,返回这两个数的索引,如果不存在,返回[-1, -1]。

解答参考内容:```pythondef findTwoSum(nums, target):hashtable = {}for i, num in enumerate(nums):if target - num in hashtable:return [hashtable[target - num], i]hashtable[num] = ireturn [-1, -1]```2. 数据结构题目:实现一个双向链表的插入和删除操作。

解答参考内容:```pythonclass Node:def __init__(self, value):self.value = valueself.prev = Noneself.next = Noneclass DoubleLinkedList:def __init__(self):self.head = Noneself.tail = Nonedef insert(self, value):node = Node(value)if self.head is None:self.head = nodeself.tail = nodeelse:node.prev = self.tailself.tail.next = nodeself.tail = nodedef delete(self, value):current = self.headwhile current:if current.value == value:if current.prev:current.prev.next = current.next else:self.head = current.nextif current.next:current.next.prev = current.prev else:self.tail = current.prevbreakcurrent = current.next```3. 计算机网络题目:实现一个简单的TCP协议的三次握手和四次挥手过程。

蓝桥杯少儿编程比赛14届题解c++

蓝桥杯少儿编程比赛14届题解c++

蓝桥杯少儿编程比赛14届题解c++蓝桥杯少儿编程比赛是一个每年举办一次的编程竞赛,旨在培养和激发孩子们对编程的兴趣与能力。

以下是对蓝桥杯少儿编程比赛14届题目的解析。

14届题目是关于一个小猴子爬山的问题。

题目要求使用编程求解小猴子爬山的最短路径,并输出路径长度。

首先,我们需要读入题目所给的信息:山的高度h、小猴子的位置s、以及洞口的位置e。

接下来,我们可以使用动态规划的思想来解决这个问题。

我们可以创建一个数组dp,其中dp[i]表示小猴子从位置i到洞口的最短路径长度。

首先,我们可以将数组dp所有元素初始化为无穷大,表示小猴子还未到达该位置。

然后,我们可以设置dp[e]为0,表示小猴子距离洞口的最短路径长度为0。

接下来,我们可以使用循环从右向左遍历数组dp,计算每个位置i到洞口的最短路径长度。

在计算dp[i]时,我们可以考虑小猴子的两种行动方式:一是向右跳一步,二是向左跳一步或两步。

我们需要选择小猴子的行动方式,使得dp[i]的值最小。

如果小猴子选择向右跳一步,那么dp[i]的值可以通过dp[i+1]加上从位置i到位置i+1的距离得到。

如果小猴子选择向左跳一步,那么dp[i]的值可以通过dp[i+1]加上从位置i到位置i+1的距离得到。

如果小猴子选择向左跳两步,那么dp[i]的值可以通过dp[i+2]加上从位置i到位置i+2的距离得到。

根据上述思路,我们可以使用一个循环来计算dp数组中的每个元素,最终得到小猴子距离洞口的最短路径长度。

最后,我们可以输出dp[s],即小猴子距离洞口的最短路径长度。

至此,我们已经完成了对蓝桥杯少儿编程比赛14届题目的解析。

通过使用动态规划的思想,我们可以快速求解小猴子爬山的最短路径,并输出路径长度。

小结:蓝桥杯少儿编程比赛14届题目是一个关于小猴子爬山的问题。

通过使用动态规划的思想,可以快速求解小猴子爬山的最短路径。

编程能力对于解决这类问题非常重要,因此参加蓝桥杯少儿编程比赛可以提升孩子们的编程能力和解决问题的能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2014蓝桥杯湖师校内选拔赛试题及参考代码
1.神秘的数
是这样的一个整数,组成这个数的各位数字阶乘之和正好等于它本身。

例如:对于一个三位数abc,如果abc=a!+b!+c!, 则该数是神秘的数。

对于一个四位数abcd,如果abcd=a!+b!+c!+d!, 则该数是神秘的数。

要求输出范围在100~50000之间的所有的神秘的数。

每个数输出一行,每行从第1列输出,不要输出空行。

结果:
145
40585
参考代码:
#include<stdio.h>
int main()
{ int i,j,a,b,t,s;
for(i=100;i<=50000;i++)
{ s=0;
a=i;
while(a!=0)
{ t=1;
b=a%10;
for(j=1;j<=b;j++)
t=t*j;
s=s+t;
a=a/10;
}
if(s==i) printf("%d\n",i);
}
return 0;
}
2 轮转数(每个字符依次向右循环移动)
有一字符串(小写a-z): abcdefghijklmnopqrstuvwxyz
经过1次向右循环移动,得到字符串zabcdefghijklmnopqrstuvwxy
经过2次向右循环移动,得到字符串yzabcdefghijklmnopqrstuvwx
经过3次向右循环移动,得到字符串xyzabcdefghijklmnopqrstuvw
编写程序,输入向右移动次数n(n为int类型), 输出向右移动n次数后得到的字符串。

样例输入
4
样例输出
wxyzabcdefghijklmnopqrstuv
样例输入
8
样例输出
stuvwxyzabcdefghijklmnopqr
测试数据:
输入6
输出uvwxyzabcdefghijklmnopqrst
输入523
输出xyzabcdefghijklmnopqrstuvw
参考代码
#include<stdio.h>
int main()
{ int i,n,j=0;
scanf("%d",&n);
for(i=26-n%26;j<26;i=(i+1)%26,++j)
printf("%c",'a'+i);
return 0;
}
3.将十进制数转换成十六进制数
输入要求:
包括多组测试数据。

输入一个不超过10位正整数,无前导零。

输入以0结束。

输出要求:
输出其十六进制表示(不打印前导零,A~F字母大写)。

输入样例:
12 20 123456789 0
输出样例:
C 14 75BCD15
提示:输入以0结束,不要打印多余字符!
测试数据
输入 234 1234 9123456780 0
输出 EA 4D2 21FCCE70C
参考代码:
#include<stdio.h>
int main()
{ int i,j,dnum,t;
char xnum[100];
while(1)
{
scanf("%d",&dnum);
i=0;
if(dnum==0) break;
while(dnum)
{t=dnum%16+48;
if(t>57) t=t+7;
xnum[i++]=t;
dnum=dnum/16;
}
for(j=i-1;j>=0;j--) putchar(xnum[j]); putchar(' ');
}
return 0;
}。

相关文档
最新文档