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

合集下载

2014年第五届蓝桥杯软件类省赛真题_Java本科A

2014年第五届蓝桥杯软件类省赛真题_Java本科A
输出一行,包含一个整数,表示满足条件的方案数。由于这个数很大,请输出方案数除以100000007的余数。
例如,输入:
4 10 2 3
程序应该输出:
2
【样例说明】
这两个数列分别是2 4 1 3和7 4 1 -2。
【数据规模与约定】
对于10%的数据,1<=n<=5,0<=s<=5,1<=a,b<=5;
if(b[i-1]>=0)
b[(i-1)/2] = b[i-1];
else
b[(i-1)/2] = -1;
}
else{
if(a[b[i]]>a[b[i-1]])
b[(i-1)/2] = b[i];
else
b[(i-1)/2] = b[i-1];
第一个数据输出后,它所在的位置被标识为-1
class A{
//a 表示待处理的数据,长度如果不是2的次幂,则不足位置补为-1
static void pick(int[] a)
{
int n = 1;
while(n<a.length) n *= 2;
int[] b = new int[2*n-1];
else
b[k] = b[k2];
}
}
请仔细分析流程,填写缺失的代码。
通过浏览器提交答案,只填写缺失的代码,不要填写已有代码或其它说明语句等。
Java本科A
6_题目
标题:六角填数
如图【1.png】所示六角形中,填入1~12的数字。
使得每条直线上的数字之和都相同。
图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少?
请通过浏览器提交答案,不要填写多余的内容。

2014第五届蓝桥杯C-C++本科B组试题及答案要点

2014第五届蓝桥杯C-C++本科B组试题及答案要点

2014第五届蓝桥杯C/C++本科B组试题及答案解答:#include<stdio.h>int main(){int x,y;double m=0;for(x=0,y=42;x<35 || x>y;){y = (int)(82.3-2.3*x)/1.9;m= 2.3*x+1.9*y;if(m==82.3)break;x = x+1;y = y-2;}printf("%d\n%d\n",x,y);return0;}解答:#include<stdio.h>#include<math.h>int main(){printf("%d"pow( 2.0 ,10.0 ) + 1); return0;}解答:#include<stdio.h>int sum=0;int f(int a,int b,int c){if(a>0)f(a-1,b,c*2);if(b>0)f(a,b-1,c-1);if(a==0&&b==0&&c==1)sum=sum+1;return sum;}int main(){f(5,9,2);printf("%d",sum);}解答:if(r>0)return i;解答:f(a, rank - 1, row,col+w/2);解答:#include<stdio.h>int main(void){int i,j,k,l;int z;for(i=1;i<10;i++)for(j=1;j<10;j++)for(k=1;k<10;k++)for(l=1;l<10;l++)if(i!=j&&k!=l)if((float)i*k/(j*l)==(float(i*10+k)/(j *10+l))){printf("%d/%d,%d/%d\n",i,j,k,l);z++;}printf("%d",z);return0;}答案:10解答://思路为将蚂蚁的碰撞理解为互相穿过#include<stdio.h>int main(){int n,m=1;int i,j=0,k=0;int a[100],b[100],c[100];scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n;i++){if(a[i]<0){b[j]=-a[i];j++;}else{c[k]=a[i];k++;}}if(a[1]<0)a[1]=-a[1];for(i=0;i<j;i++){if(b[i]>a[1])m++;}for(i=0;i<k;i++){if(c[i]<a[1])m++;}printf("%d\n",m);}解答:#include <stdio.h>int n, m, k, count = 0, map[51][51];void dfs(int x, int y, int max, int num){if(x == n || y == m || num > k) return;else if(x == n - 1 && y == m - 1){if(num == k) count++;else if(num == k - 1 && map[n - 1][m - 1] > max) count++;count %= 1000000007;}else{if(map[x][y] > max){dfs(x + 1, y, map[x][y], num + 1);dfs(x, y + 1, map[x][y], num + 1);}dfs(x + 1, y, max, num);dfs(x, y + 1, max, num);}}int main(void){int i, j;scanf("%d%d%d", &n, &m, &k);for(i = 0; i < n; i++){for(j = 0; j < m; j++){scanf("%d", &map[i][j]);}}dfs(0, 0, 0, 0);printf("%d\n", count);return0;}解答:#include <stdio.h>#include <stdlib.h>struct children{int height;int step;}ch[100001], s_ch[100001], temp;void swap(struct children *a, struct children *b){a->step++;b->step++;temp = *a;*a = *b;*b = temp;}int cmp(const void*a, const void*b){return(*(struct children *)a).height - (*(struct children *)b).height;}int main(void){int n, i, j, k, count = 0;scanf("%d", &n);for(i = 0; i < n; i++){scanf("%d", &ch[i].height);ch[i].step = 0;s_ch[i] = ch[i];}qsort(s_ch, n, sizeof(struct children), cmp);for(i = 0; i < n; i++){for(j = i; j < n; j++){if(s_ch[i].height == ch[j].height) break;}for(k = j; k>i; k--){swap(&ch[k], &ch[k - 1]);}}for(int i = 0; i < n; i++)count += (ch[i].step + 1) * ch[i].step / 2;printf("%d\n", count);return0;}。

第二届第四届第五届蓝桥杯单片机设计与开发决赛题

第二届第四届第五届蓝桥杯单片机设计与开发决赛题

多功能记录仪;:记录温湿度,物品停留时间,能够存入EPEROM;(1)实时显示时间【08-08-30】要求分隔符;(2)显示温度,湿度【25C--28H】;(3)显示最后一次物品停留时间【-灭灭00012;(4)要求用按键s4控制;2:模式;:记录仪有两种模式;模式一:自动传输模式(上电默认);此模式下自动记录环境温度,湿度,时间,物品是否停;模式二:自动记多功能记录仪:记录温湿度,物品停留时间,能够存入EPEROM,从EEPROM取出,及同PC通信使用的模块:EEPROM,PCF8591(通道1,3),18B20,DS1302,串口通信, 1:数码管(1)实时显示时间【08-08-30】要求分隔符随秒针闪动,每秒闪动一次(2)显示温度,湿度【25C--28H】(3)显示最后一次物品停留时间【-灭灭00012】(4)要求用按键s4控制2:模式:记录仪有两种模式模式一:自动传输模式(上电默认)此模式下自动记录环境温度,湿度,时间,物品是否停留,并以{时间}{温湿度}{物品是否停留}格式以1200b/s发送给PC显示;如{08-08-30}{25c--38%h}{--0--} 模式二:自动记录模式此模式下自动记录环境温度,湿度,时间,物品停留时间,并把这些数据存入EEPROM,格式不限,然后把这些数据从EEROM中取出,并以{时间}{温湿度}{物品停留时间}格式以1 200b/s发送给PC显示;如{08-08-30}{25c--38%h}{--12s}要求用按键S5切换3:LED模式一LED1亮模式二LED2亮有物品接近LED3每秒闪烁一次4:通信协议当记录仪工作在两种模式下时:只有当用户发送字符“AAASSS”给单片机时,单片机才把数据传送给PC显示。

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;}。

第五届蓝桥杯程序设计大赛省赛题目及答案

第五届蓝桥杯程序设计大赛省赛题目及答案

第五届省赛1.一个串的子串是指该串的一个连续的局部。

如果不要求连续,则可称为它的子序列。

比如对串: "abcdefg" 而言,"ab","abd","bdef" 等都是它的子序列。

特别地,一个串本身,以及空串也是它的子序列。

对两个串而言,可以有许多的共同的子序列,我们关心的是:它们所共同拥有的长度最大的子序列是多长。

以下代码实现了这个问题的求解。

请填写划线部分缺失的代码。

注意:只填写划线部分缺少的内容,不要填写任何多余的符号或注释、说明等。

例如,不要填写已经给出的小括号。

inline max(int a, int b){return a>b?a:b;}int f(char* x, char* y){if(strlen(x)==0) return 0;if(strlen(y)==0) return 0;if(*x == *y) return f(x+1, y+1) + 1;return max( ______________________ );//处理字符串}int main(){printf("%d\n", f("ac","abcd")); //2printf("%d\n", f("acebbcde1133","xya33bc11de")); //5return 0;}f(x+1,y),f(x,y+1)2.历史上有许多计算圆周率pai的公式,其中,格雷戈里和莱布尼茨发现了下面的公式:pai = 4*(1-1/3+1/5-1/7 ....)参见【图1.png】这个公式简单而优美,但美中不足,它收敛的太慢了。

如果我们四舍五入保留它的两位小数,那么:累积了1项和是:4.00累积了2项和是:2.67累积了3项和是:3.47。

2014年第五届蓝桥杯大赛软件类决赛真题(JAVA高职组)

2014年第五届蓝桥杯大赛软件类决赛真题(JAVA高职组)

小明和他的表弟一起去看电影,有人问他们的年龄。

小明说:今年是我们的幸运年啊。

我出生年份的四位数字加起来刚好是我的年龄。

表弟的也是如此。

已知今年是2014年,并且,小明说的年龄指的是周岁。

请推断并填写出小明的出生年份。

2、出栈次序(结果填空,35分)X星球特别讲究秩序,所有道路都是单行线。

一个甲壳虫车队,共16辆车,按照编号先后发车,夹在其它车流中,缓缓前行。

路边有个死胡同,只能容一辆车通过,是临时的检查站,如图【p1.png】所示。

X星球太死板,要求每辆路过的车必须进入检查站,也可能不检查就放行,也可能仔细检查。

如果车辆进入检查站和离开的次序可以任意交错。

那么,该车队再次上路后,可能的次序有多少种?为了方便起见,假设检查站可容纳任意数量的汽车。

显然,如果车队只有1辆车,可能次序1种;2辆车可能次序2种;3辆车可能次序5种。

现在足足有16辆车啊,亲!需要你计算出可能次序的数目。

正整数可以表示为若干正整数的累加和。

如,对于正整数n=6,可以分划为:65+14+24+1+13+33+2+13+1+1+12+2+22+2+1+12+1+1+1+11+1+1+1+1+1现在的问题是,对于给定的正整数n,计算出所有划分情况。

下面的代码实现了这个功能。

仔细分析,填写划线部分缺失的代码。

public class MyTest{ public static List fen(int n, int limit){Vector v = new Vector();if(n<=limit) v.add(n);for(int i=1; i<n; i++){if(n-i > limit) continue;List t = fen(i,n-i);for(int k=0; k<t.size(); k++)__________________________; //填空位置}return v;}public static void main(String[] args){List v = fen(6,6);for(int i=0; i<v.size(); i++)System.out.println(v.get(i));}}X博士正在研究一种生物芯片,其逻辑密集度、容量都远远高于普通的半导体芯片。

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(________________) //填空

蓝桥杯所有题目

蓝桥杯所有题目

1.A+B问题问题描述输入A、B,输出A+B。

说明:在“问题描述”这部分,会给出试题的意思,以及所要求的目标。

输入格式输入的第一行包括两个整数,由空格分隔,分别表示A、B。

输出格式输出一行,包括一个整数,表示A+B的值。

样例输入12 45样例输出57数据规模与约定-10000 <= A, B <= 10000。

2.序列求和问题描述求1+2+3+...+n的值。

输入格式输入包括一个整数n。

输出格式输出一行,包括一个整数,表示1+2+3+...+n的值。

样例输入4样例输出10样例输入100样例输出5050数据规模与约定1 <= n <= 1,000,000,0003.圆的面积问题描述给定圆的半径r,求圆的面积。

输入格式输入包含一个整数r,表示圆的半径。

输出格式输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。

样例输入4样例输出50.2654825数据规模与约定1 <= r <= 10000。

提示本题对精度要求较高,请注意π的值应该取较精确的值。

你可以使用常量来表示π,比如PI=3.14159265358979323,也可以使用数学公式来求π,比如PI=atan(1.0)*4。

4.Fibonacci数列问题描述Fibonacci数列的递推公式为:F n=F n-1+F n-2,其中F1=F2=1。

当n比较大时,F n也非常大,现在我们想知道,F n除以10007的余数是多少。

输入格式输入包含一个整数n。

输出格式输出一行,包含一个整数,表示F n除以10007的余数。

说明:在本题中,答案是要求F n除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出F n的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。

样例输入10样例输出55样例输入22样例输出7704数据规模与约定1 <= n <= 1,000,000。

第1-7届蓝桥杯决赛试题及答案

第1-7届蓝桥杯决赛试题及答案

第1-7届蓝桥杯决赛试题及答案2011年第1届蓝桥杯决赛试题及答案1.四方定理数论中有著名的四方定理:所有自然数至多只要用四个数的平方和就可以表示。

我们可以通过计算机验证其在有限范围的正确性。

对于大数,简单的循环嵌套是不适宜的。

下面的代码给出了一种分解方案。

请仔细阅读,填写空缺的代码(下划线部分)。

注意:请把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。

直接写在题面中不能得分。

int f(int n, int a[], int idx){if(______________) return 1; // 填空1if(idx==4) return 0;for(int i=(int)sqrt(n); i>=1; i--){a[idx] = i;if(_______________________)return 1; // 填空2}return 0;}int main(int argc, char* argv[]){for(;;){int number;printf("输入整数(1~10亿):");scanf("%d",&number);int a[] = {0,0,0,0};int r = f(number, a, 0);printf("%d: %d %d %d %d\n", r, a[0], a[1], a[2], a[3]);}return 0;}2.加密在对文本进行简单加密的时候,可以选择用一个n位的二进制数,对原文进行异或运算。

解密的方法就是再执行一次同样的操作。

加密过程中n位二进制数会循环使用。

并且其长度也可能不是8的整数倍。

下面的代码演示了如何实现该功能。

请仔细阅读,填写空缺的代码(下划线部分)。

注意:请把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。

第五届蓝桥杯省赛b组试题及答案

第五届蓝桥杯省赛b组试题及答案

第五届蓝桥杯省赛b组试题及答案第五届蓝桥杯省赛B组试题及答案一、选择题(每题5分,共20分)1. 下列哪个选项是Python语言中用于定义函数的关键字?A. defB. functionC. funcD. declare答案:A2. 在HTML中,用于定义最重要的标题的标签是?A. <h1>B. <title>C. <header>D. <h6>答案:A3. 在JavaScript中,以下哪个方法用于获取数组中最后一个元素?A. last()B. first()C. pop()D. lastElement()答案:C4. 在CSS中,以下哪个属性用于设置元素的背景颜色?A. background-colorB. bg-colorC. colorD. back-color答案:A二、填空题(每题5分,共20分)1. 在Python中,用于执行条件判断的关键字是________。

答案:if2. 在HTML中,用于创建无序列表的标签是________。

答案:<ul>3. 在JavaScript中,用于获取当前日期的函数是________。

答案:new Date()4. 在CSS中,用于设置文本颜色的属性是________。

答案:color三、简答题(每题10分,共20分)1. 请解释什么是闭包,并给出一个简单的JavaScript闭包示例。

答案:闭包是一个函数和其周围的状态(词法环境)的组合。

闭包允许函数访问其定义时的作用域链,即使在其定义的作用域外执行。

示例:```javascriptfunction createClosure() {var secret = "I'm a secret";return function() {console.log(secret);};}var myClosure = createClosure();myClosure(); // 输出:I'm a secret```2. 请简述HTML5和HTML4的主要区别。

201X年第五届蓝桥杯大赛软件类C_C++ B组全国总决赛真题

201X年第五届蓝桥杯大赛软件类C_C++ B组全国总决赛真题

2014年决赛C/C++本科B组1.结果填空(满分10分)标题:年龄巧合小明和他的表弟一起去看电影,有人问他们的年龄。

小明说:今年是我们的幸运年啊。

我出生年份的四位数字加起来刚好是我的年龄。

表弟的也是如此。

已知今年是2014年,并且,小明说的年龄指的是周岁。

请推断并填写出小明的出生年份。

这是一个4位整数,请通过浏览器提交答案,不要填写任何多余的内容(比如,他表弟的出生年份,或是他们的年龄等等)2.结果填空(满分25分)标题:出栈次序X星球特别讲究秩序,所有道路都是单行线。

一个甲壳虫车队,共16辆车,按照编号先后发车,夹在其它车流中,缓缓前行。

路边有个死胡同,只能容一辆车通过,是临时的检查站,如图【p1.png】实用文档所示。

X星球太死板,要求每辆路过的车必须进入检查站,也可能不检查就放行,也可能仔细检查。

如果车辆进入检查站和离开的次序可以任意交错。

那么,该车队再次上路后,可能的次序有多少种?为了方便起见,假设检查站可容纳任意数量的汽车。

显然,如果车队只有1辆车,可能次序1种;2辆车可能次序2种;3辆车可能次序5种。

现在足足有16辆车啊,亲!需要你计算出可能次序的数目。

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

实用文档3.代码填空(满分35分)标题:信号匹配从X星球接收了一个数字信号序列。

现有一个已知的样板序列。

需要在信号序列中查找它首次出现的位置。

这类似于串的匹配操作。

如果信号序列较长,样板序列中重复数字较多,就应当注意比较的策略了。

可以仿照串的KMP算法,进行无回溯的匹配。

这种匹配方法的关键是构造next数组。

实用文档next[i] 表示第i项比较失配时,样板序列向右滑动,需要重新比较的项的序号。

如果为-1,表示母序列可以进入失配位置的下一个位置进行新的比较。

下面的代码实现了这个功能,请仔细阅读源码,推断划线位置缺失的代码。

// 生成next数组int* make_next(int pa[], int pn){int* next = (int*)malloc(sizeof(int)*pn);next[0] = -1;int j = 0;int k = -1;while(j < pn-1){if(k==-1 || pa[j]==pa[k]){j++;k++;next[j] = k;}实用文档elsek = next[k];}return next;}// da中搜索pa,da的长度为an, pa的长度为pn int find(int da[], int an, int pa[], int pn){int rst = -1;int* next = make_next(pa, pn);int i=0; // da中的指针int j=0; // pa中的指针int n = 0;while(i<an){n++;if(da[i]==pa[j] || j==-1){i++;实用文档j++;}else__________________________; //填空位置if(j==pn) {rst = i-pn;break;}}free(next);return rst;}int main(){int da[] = {1,2,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,1,1,1,2,1,2,3};实用文档int pa[] = {1,2,1,1,2,1,1,1,2};int n = find(da, sizeof(da)/sizeof(int), pa, sizeof(pa)/sizeof(int));printf("%d\n", n);return 0;}注意:通过浏览器提交答案。

【2017年整理】第五届蓝桥杯预赛题目及答案

【2017年整理】第五届蓝桥杯预赛题目及答案

2014年第五届蓝桥杯预赛题目第一题标题:啤酒和饮料啤酒每罐2.3元,饮料每罐1.9元。

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

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

注意:答案是一个整数。

请通过浏览器提交答案。

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

第二题标题:切面条一根高筋拉面,中间切一刀,可以得到2根面条。

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

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

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

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

第三题标题:李白打酒话说大诗人李白,一生好饮。

幸好他从不开车。

一天,他提着酒壶,从家里出来,酒壶中有酒2斗。

他边走边唱:无事街上走,提壶去打酒。

逢店加一倍,遇花喝一斗。

这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。

请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。

则:babaabbabbabbbb 就是合理的次序。

像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。

注意:通过浏览器提交答案。

答案是个整数。

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

第四题标题:史丰收速算史丰收速算法的革命性贡献是:从高位算起,预测进位。

不需要九九表,彻底颠覆了传统手算!速算的核心基础是:1位数乘以多位数的乘法。

其中,乘以7是最复杂的,就以它为例。

因为,1/7 是个循环小数:0.142857...,如果多位数超过142857...,就要进1同理,2/7, 3/7, ... 6/7 也都是类似的循环小数,多位数超过n/7,就要进n下面的程序模拟了史丰收速算法中乘以7的运算过程。

乘以7 的个位规律是:偶数乘以2,奇数乘以2再加5,都只取个位。

乘以7 的进位规律是:满142857 (1)满285714 (2)满428571 (3)满571428 (4)满714285 (5)满857142... 进6请分析程序流程,填写划线部分缺少的代码。

历年蓝桥杯省赛B组真题试题1

历年蓝桥杯省赛B组真题试题1

(1)煤球数目有一堆煤球,堆成三角棱锥形。

具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),如果一共有100层,共有多少个煤球?题解:纯粹的数学题而已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);(2)生日蜡烛某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。

现在算起来,他一共吹熄了236根蜡烛。

请问,他从多少岁开始过生日party的?请填写他开始过生日party的年龄数。

题解:暴力枚举。

第一重循环枚举刚开始过生日时候的岁数。

第二重循环是枚举现在的岁数第三重循环就是将刚开始过生日的岁数和现在的岁数加起来。

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); (3)B DEFA + — + —— = 10C GHI(如果显示有问题,可以参见【图1.jpg】)这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。

比如:6+8/3+952/714 就是一种解法,5+3/1+972/486 是另一种解法。

这个算式一共有多少种解法?//29题解:DFS+回溯由于计算机中5/2会等于2,而且如果打算采用精度方面的处理的话,会很麻烦,而且很容易错。

2022年第五届蓝桥杯大赛软件类C-CC组全国总决赛真题

2022年第五届蓝桥杯大赛软件类C-CC组全国总决赛真题

2022年第五届蓝桥杯大赛软件类C-CC组全国总决赛真题1.结果填空(满分10分)标题:国王的遗产某国是个小国。

国王K有6个儿子。

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

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

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

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

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

这是一个整数,请通过浏览器提交答案,不要填写任何多余的内容(比如说明性的文字)2.结果填空(满分35分)标题:神奇6位数有一个6位的正整数,它有个很神奇的性质:分别用23456去乘它,得到的仍然是6位数,并且乘积中所包含的数字与这个6位数完全一样!只不过是它们的顺序重新排列了而已。

请计算出这个6位数。

这是一个整数,请通过浏览器提交答案,不要填写任何多余的内容(比如说明性的文字)3.代码填空(满分25分)标题:日期差下面的程序计算了两个日期的差值,两个日期都使用公元纪年法。

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

intdiff(inty1,intm1,intd1,inty2,intm2,intd2){inta=to_day(y1, m1,d1);intb=to_day(y2,m2,d2);returnb-a;}intmain(){intn=diff(1864,12,31,1865,1,1);printf(\return0;}注意:通过浏览器提交答案。

只填写缺少的内容,不要填写任何多余的内容(例如:说明性文字或已有符号)。

4.程序设计(满分50分)标题:拼接平方数小明发现49很有趣,首先,它是个平方数。

它可以拆分为4和9,拆分出来的部分也是平方数。

169也有这个性质,我们权且称它们为:拼接平方数。

第2/7页100可拆分100,这有点勉强,我们规定,000000等都不算平方数。

小明想:还有哪些数字是这样的呢?你的任务出现了:找到某个区间的所有拼接平方数。

2014第五届蓝桥杯C-C++本科B组试题及答案要点

2014第五届蓝桥杯C-C++本科B组试题及答案要点

2014第五届蓝桥杯C/C++本科B组试题及答案解答:#include〈stdio.h>int main(){int x,y;double m=0;for(x=0,y=42;x〈35 || x〉y;){y = (int)(82。

3—2。

3*x)/1。

9;m= 2.3*x+1。

9*y;if(m==82。

3)break;x = x+1;y = y—2;}printf("%d\n%d\n",x,y);return0;}解答:#include<stdio.h〉#include〈math.h〉int main(){printf("%d"pow( 2。

0 ,10。

0 ) + 1);return0;}解答:#include<stdio。

h>int sum=0;int f(int a,int b,int c){if(a>0)f(a—1,b,c*2);if(b>0)f(a,b—1,c-1);if(a==0&&b==0&&c==1)sum=sum+1;return sum;}int main(){f(5,9,2);printf(”%d”,sum);}解答:if(r>0)return i;解答:f(a, rank - 1, row,col+w/2);解答:#include〈stdio.h〉int main(void){int i,j,k,l;int z;for(i=1;i〈10;i++)for(j=1;j〈10;j++)for(k=1;k<10;k++)for(l=1;l〈10;l++)if(i!=j&&k!=l)if((float)i*k/(j*l)==(float(i*10+k)/(j*10+l))){printf(”%d/%d,%d/%d\n",i,j,k,l);z++;}printf("%d”,z);return0;}答案:10解答://思路为将蚂蚁的碰撞理解为互相穿过#include〈stdio.h>int main(){int n,m=1;int i,j=0,k=0;int a[100],b[100],c[100]; scanf("%d”,&n);for(i=0;i<n;i++)scanf(”%d",&a[i]);for(i=0;i<n;i++){if(a[i]<0){b[j]=—a[i];j++;}else{c[k]=a[i];k++;}}if(a[1]〈0)a[1]=-a[1];for(i=0;i〈j;i++){if(b[i]〉a[1])m++;}for(i=0;i<k;i++){if(c[i]<a[1])m++;}printf("%d\n”,m);}解答:#include 〈stdio.h>int n, m, k, count = 0, map[51][51];void dfs(int x,int y, int max, int num){if(x == n || y == m || num 〉 k)return;else if(x == n — 1 && y == m - 1){if(num == k) count++;else if(num == k - 1 && map[n — 1][m - 1] 〉max) count++;count %= 1000000007;}else{if(map[x][y] 〉 max){dfs(x + 1, y, map[x][y], num + 1);dfs(x, y + 1, map[x][y], num + 1);}dfs(x + 1, y, max, num);dfs(x, y + 1, max, num);}}int main(void){int i, j;scanf(”%d%d%d",&n, &m, &k);for(i = 0; i 〈 n; i++){for(j = 0; j < m; j++){scanf(”%d”, &map[i][j]);}}dfs(0, 0, 0, 0);printf("%d\n", count);return0;}解答:#include <stdio.h〉#include <stdlib。

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

标题:武功秘籍小明到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);elseprintf("%d ", (i*i-1)/2);}printf("\n");}请填写划线部分缺失的代码。

通过浏览器提交答案。

注意:不要填写题面已有的内容,也不要填写任何说明、解释文字。

标题:打印图形小明在X星球的城堡中发现了如下图形和文字:rank=3** ** ** * * *rank=5* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * ** * * * * * * ** * * * * * * * * * * * * * * *ran=6* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *小明开动脑筋,编写了如下的程序,实现该图形的打印。

#define N 70void f(char a[][N], int rank, int row, int col){if(rank==1){a[row][col] = '*';return;}int w = 1;int i;for(i=0; i<rank-1; i++) w *= 2;____________________________________________;f(a, rank-1, row+w/2, col);f(a, rank-1, row+w/2, col+w);}int main(){char a[N][N];int i,j;for(i=0;i<N;i++)for(j=0;j<N;j++) a[i][j] = ' ';f(a,6,0,0);for(i=0; i<N; i++){for(j=0; j<N; j++) printf("%c",a[i][j]);printf("\n");}return 0;}请仔细分析程序逻辑,填写缺失代码部分。

通过浏览器提交答案。

注意不要填写题目中已有的代码。

也不要写任何多余内容(比如说明性的文字)标题:神奇算式由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。

比如:210 x 6 = 12608 x 473 = 378427 x 81 = 2187都符合要求。

如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。

请填写该数字,通过浏览器提交答案,不要填写多余内容(例如:列出所有算式)。

标题:绳圈今有 100 根绳子,当然会有 200 个绳头。

如果任意取绳头两两配对,把所有绳头都打结连接起来。

最后会形成若干个绳圈(不考虑是否套在一起)。

我们的问题是:请计算最后将形成多少个绳圈的概率最大?注意:结果是一个整数,请通过浏览器提交该数字。

不要填写多余的内容。

标题:分糖果有n个小朋友围坐成一圈。

老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:每个小朋友都把自己的糖果分一半给左手边的孩子。

一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。

反复进行这个游戏,直到所有小朋友的糖果数都相同为止。

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

【格式要求】程序首先读入一个整数N(2<N<100),表示小朋友的人数。

接着是一行用空格分开的N个偶数(每个偶数不大于1000,不小于2)要求程序输出一个整数,表示老师需要补发的糖果数。

例如:输入32 2 4程序应该输出:4资源约定:峰值内存消耗 < 256MCPU消耗 < 1000ms请严格按要求输出,不要画蛇添足地打印类似:“请您输入...”的多余内容。

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

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

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

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

标题:地宫取宝X 国王有一个地宫宝库。

是 n x m 个格子的矩阵。

每个格子放一件宝贝。

每个宝贝贴着价值标签。

地宫的入口在左上角,出口在右下角。

小明被带到地宫的入口,国王要求他只能向右或向下行走。

走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。

当小明走到出口时,如果他手中的宝贝恰好是k件,则这些宝贝就可以送给小明。

请你帮小明算一算,在给定的局面下,他有多少种不同的行动方案能获得这k件宝贝。

【数据格式】输入一行3个整数,用空格分开:n m k (1<=n,m<=50, 1<=k<=12)接下来有 n 行数据,每行有 m 个整数 Ci (0<=Ci<=12)代表这个格子上的宝物的价值要求输出一个整数,表示正好取k个宝贝的行动方案数。

该数字可能很大,输出它对1000000007 取模的结果。

例如,输入:2 2 21 22 1程序应该输出:2再例如,输入:2 3 21 2 32 1 5程序应该输出:14资源约定:峰值内存消耗 < 256MCPU消耗 < 1000ms请严格按要求输出,不要画蛇添足地打印类似:“请您输入...”的多余内容。

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

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

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

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

标题:小朋友排队n 个小朋友站成一排。

现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。

每个小朋友都有一个不高兴的程度。

开始的时候,所有小朋友的不高兴程度都是0。

如果某个小朋友第一次被要求交换,则他的不高兴程度增加1,如果第二次要求他交换,则他的不高兴程度增加2(即不高兴程度为3),依次类推。

当要求某个小朋友第k次交换时,他的不高兴程度增加k。

请问,要让所有小朋友按从低到高排队,他们的不高兴程度之和最小是多少。

如果有两个小朋友身高一样,则他们谁站在谁前面是没有关系的。

【数据格式】输入的第一行包含一个整数n,表示小朋友的个数。

第二行包含 n 个整数 H1 H2 … Hn,分别表示每个小朋友的身高。

输出一行,包含一个整数,表示小朋友的不高兴程度和的最小值。

例如,输入:33 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。

资源约定:峰值内存消耗 < 256MCPU消耗 < 1000ms请严格按要求输出,不要画蛇添足地打印类似:“请您输入...”的多余内容。

相关文档
最新文档