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

合集下载

java蓝桥杯b组题目

java蓝桥杯b组题目

java蓝桥杯b组题目摘要:1.蓝桥杯B 组题目概述2.蓝桥杯B 组题目的类型3.如何准备蓝桥杯B 组题目4.总结正文:【蓝桥杯B 组题目概述】蓝桥杯是中国的一项全国性计算机科学比赛,每年举办一次。

该比赛旨在发掘和培养高中和大学生的计算机科学和信息技术方面的才能。

蓝桥杯B 组是针对高中生举办的比赛,参赛选手需要通过地区赛、省赛等多个层次的选拔,最终进入全国总决赛。

蓝桥杯B 组题目是比赛的重要组成部分,题目内容涵盖了计算机科学的各个领域,如算法与数据结构、计算机网络、数据库、操作系统等。

【蓝桥杯B 组题目的类型】蓝桥杯B 组题目分为两种类型:个人赛题目和团队赛题目。

个人赛题目是针对单个选手进行的比赛,要求选手在规定时间内独立完成一个计算机程序,并满足题目要求。

团队赛题目则是由3 名选手组成的团队共同完成一个计算机程序,并满足题目要求。

两种类型的题目都注重考察选手的编程能力和解决实际问题的能力。

【如何准备蓝桥杯B 组题目】准备蓝桥杯B 组题目需要掌握一定的计算机科学基础知识,包括算法与数据结构、计算机网络、数据库、操作系统等方面的知识。

此外,还需要进行大量的编程练习,提高编程能力和解决实际问题的能力。

具体的准备方法包括:1.学习计算机科学基础知识,了解计算机编程的基本思想和方法。

2.练习编写算法和数据结构,掌握常用的算法和数据结构,如排序算法、查找算法、树、图等。

3.熟悉计算机编程语言,如C++、Java 等,熟练掌握编程语言的基本语法和常用函数库。

4.进行模拟练习,模拟蓝桥杯比赛的形式和要求,提高自己的应变能力和抗压能力。

【总结】蓝桥杯B 组题目是高中生参加的一项重要的计算机科学比赛,考察选手的编程能力和解决实际问题的能力。

第四届蓝桥杯java本科B组试题及答案

第四届蓝桥杯java本科B组试题及答案
}
public static void main(String[] args) { aim[0] = new Node(0, 0); dfs(0, 7); System.out.println(kinds);
} }
/*
* 标题: 黄金连分数
黄金分割数0.61803... 是个无理数,这个常数十分重要,在许多工程问题中会 出现。有时需要把这个数字求得很精确。 对于某些精密工程,常数的精度很重要。也许你听说过哈勃太空望远镜,它首次 升空后就发现了一处人工加工错误,对那样一个庞然大物,其实只是镜面加工时 有比头发丝还细许多倍的一处错误而已,却使它成了“近视眼”!!
}
public static void main(String[] args) { dfs(1, 10); System.out.println(kinds);
} }
/*** * * 标题: 振兴中华 小明参加了学校的趣味运动会,其中的一个项目是:跳格子。 地上画着一些格子,每个格子里写一个字,如下所示:(也可参见p1.jpg) * 从我做起振我做起振兴做起振兴中起振兴中华 * * 比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻 的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。 * * 要求跳过的路线刚好构成“从我做起振兴中华”这句话。 请你帮助小明算一
BigDecimal.ROUND_HALF_UP)); }
}
/* * 标题:错误票据 某涉密单位下发了某种票据,并要在年终全部收回。 每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机 选定的。 因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另
外一个ID重号。 你的任务是通过编程,找出断号的ID和重号的ID。 假设断号不可能发生在最大和最小号。 要求程序首先输入一个整数N(N<100)表示后面数据行数。接着读入N行数据。每 行数据长度不等,是用空格分开的若干个(不大于100个)正整数(不大于100000) 每个整数代表一个ID号。 要求程序输出1行,含两个整数m n,用空格分隔。其中,m表示断号ID,n表示重 号ID 例如:用户输入: 2 5 6 8 11 9 10 12 9 则程序输出:7 9

第四届蓝桥杯全国软件大赛 比赛规则与内容说明

第四届蓝桥杯全国软件大赛 比赛规则与内容说明
有些结果填空题或大题完全放弃递归会很吃力 取球问题举例
Page
16
评分方法
阅卷方式:人工 + 程序辅助
代码填空题 与标准答案一致,得分 不一致的带入测试程序,结果正确得分 选手理解错误:不需要填写其它,只填写缺少的部分 选手粗心:分号已经存在了,中西文符号问题 粗心会按统一标准扣分,将来全自动机器阅卷可能完全不给分 C代码填空举例
Page
17
评分方法
编程大题 运行结果的正确性比重 >90%
如果输入结果不正确,评审时一般不会去分析其错误的原因 如果编译有问题,会去排除环境差异的干扰,若没有按要求提交代码, 而运行结果正确,适当扣分
存在问题
测试用例与题面举例不同,不能用printf System.out.println 蒙混 使用标准输入、输出。 便于重定向测试。 严格按题目要求,不要画蛇添足。输出的内容不要有多余的东西。
Page
21
题目素材或背景
数学素材,最普遍 串的各种变换
java允许使用正则,可能会事半功倍
文件内容的处理
文本文件转换格式,比较,搜索等 二进制文件提取某种信息,某种映射
仿真问题
类似电梯调用,餐厅调用等。。 各种概率问题
求最优解问题 博弈问题
Page
22
不会出现: 含有窗口的Windows界面编程 多线程 网络编程、Web应用 数据库编程 调用底层中断或硬件相关的编程 其它一定需要非ANSI C标准调用的编程
Page
12
c/c++组
c/c++本科B组增加
数据结构、函数指针、位运算

第四届蓝桥答案

第四届蓝桥答案

第四届“蓝桥杯”选拔赛试题高职组1、猜年龄#include "stdafx.h"#include "math.h"void main(){int a[10]={0},LF,SCF;int i,j,k;for(i=11;pow(i,4)< 1000000;i++){LF=i*i*i;SCF=i*i*i*i;//四位数a[0]=LF/1000; //存放立方的千位a[1]=LF/100%10; //存放立方的百位a[2]=LF/10%10; //存放立方的十位a[3]=LF%10; //存放立方的个位//六位数a[4]=SCF/100000; //存放四次方的十万位a[5]=SCF/10000%10; //存放四次方的万位a[6]=SCF/1000%10; //存放四次方的千位a[7]=SCF/100%10; //存放四次方的百位a[8]=SCF/10%10; //存放四次方的十位a[9]=SCF%10; //存放四次方的个位for(j=0;j<=9;j++){for(k=j+1;k<10;k++){if(a[j]!=a[k] && SCF>=100000) //判断两两是否相等continue;elsebreak;}}if(k==11) //说明找到了符合条件的数{printf("当年岁数为:%d岁\n",i); //正确答案为18break;}}}2、马虎的算式#include "stdio.h"void main(){int a,b,c,d,e;int sum=0;for(a=1;a<=9;a++){for(b=1;b<=9;b++){for(c=1;c<=9;c++){for(d=1;d<=9;d++){for(e=1;e<=9;e++){if( (a!=b && a!=c && a!=d && a!=e) && ( b!=c && b!=d && b!=e) && (c!=a && c!=d && c!=e) && (d!=a && d!=b && d!=e) ){if((a*10+b) * (c*100+d*10+e) == (a*100+d*10+b) * (c*10+e)){printf("%d,%d,%d,%d,%d\n",a,b,c,d,e);sum++;}}}}}}}printf("总共有%d种\n",sum);}3、振兴中华#include "stdio.h"void main(){int a[4][5];int i, j;for (j = 0; j <5; j++) //第一行列循环{a[0][j] = 1; //第一行每一列都设为1 }for (i = 1; i <4; i++) //第一列行循环{a[i][0] = 1; //每一行的第一列都设为1for (j = 1; j < 5; j++) //列循环{a[i][j] = a[i-1][j] + a[i][j-1]; //等于前一行同列的值+ 同一行前一列的值}}printf("%d\n", a[3][4]);}4、幻方填空#include "stdafx.h"void main(){int a[4][4];int k=1;int i,j,t;int sum1[4]={0},sum2[4]={0},sum3=0,sum4=0;for(i=0;i<4;i++) //行{for(j=0;j<4;j++) //列{a[i][j]=k; //将1-16 逐一赋给16个元素k++; //保持k的值与元素对应}}for(i=0;i<2;i++) //遍历开始{for(j=0;j<4;j++){if((i==j) || (i+j==3)) //只交换一轮{t=a[i][j];a[i][j]=a[4-1-i][4-1-j];a[4-1-i][4-1-j]=t;}}}for(i=0;i<4;i++){for(j=0;j<4;j++) //打印幻方{printf("%d\t",a[i][j]);}printf("\n");}}5、公约数公倍数#include "stdafx.h"void swap(int *a,int *b){int temp;temp=*a;*a=*b;*b=temp;}void myfunc(int a, int b){int m,n,r;if(a<b) swap(&a,&b);m=a;n=b;r=a%b;while(r!=0){a=b;b=r;r=a%b;}printf("%d\n",b); // 最大公约数printf("%d\n",m*n/b); // 最小公倍数}void main(){int a,b;scanf("%d,%d",&a,&b);myfunc(a,b);}6、三部排序法#include "stdafx.h"void sort3p(int* x, int len){int p = 0;int left = 0;int right = len-1;while(p<=right){if(x[p]<0){int t = x[left];x[left] = x[p];x[p] = t;left++;p++;}else if(x[p]>0){int t = x[right];x[right] = x[p];x[p] = t;right--;}else{p++; //填空位置}}}void main(void){int x[] = {25,18,-2,0,16,-5,33,21,0,19,-16,25,-3,0};int len = 14;sort3p(x, len);for(int i = 0; i < len; i++){printf("%d,", x[i]);}}7、核桃的数量#include"stdafx.h"void swap(int *a,int *b){int t;t=*a;*a=*b;*b=t;}int fun(int a,int b){int m,n,r;if(a<b)swap(&a,&b);m=a;n=b;r=a%b;while(r!=0){a=b;b=r;r=a%b;//求两数最小公倍数:先求两数最大公约数,再将两数之积除以两数最大公约数}return m*n/b;}void main(){int a,b,c;scanf("%d %d %d",&a,&b,&c);printf("%d\n",fun( fun(a,b),fun(b,c) ) );//求三数最小公倍数:先求前两个数最小公倍数,再求前两个数最小公倍数与第三个数的最小公倍数}8、打印十字图#include "stdafx.h"void swap(int *a, int *b){int temp;temp = *a;*a = *b;*b = temp;}int go(int i, int j, int n){if (i > n * 2 + 3)i = n * 4 + 6 - i;if (j > n * 2 + 3)j = n * 4 + 6 - j;if (i < j) swap(&i, &j);if (i <= 2 && j <= 2) return 0;if (i % 2 == 1 && j >= i - 2) return 1;if (j % 2 == 1 && j != i - 1) return 1;return 0;}void main(){int n;scanf("%d", &n);int i, j;for (i = 1; i <= n*4+5; i++){for (j = 1; j <= n*4+5; j++){if (go(i, j, n))printf("$");elseprintf(".");}printf("\n");}}9、带分数#include "stdafx.h"#define N 9int num[N] = {1,2,3,4,5,6,7,8,9};int tag[3][3] = {{4,3,2},{5,3,1},{6,2,1}};void swap(int *a, int *b){int temp;temp = *a;*a = *b;*b = temp;}int go(int i, int n){int a, b, c;int count = 0;for (a = 0; a < 3; a++){int r[3] = {0} , d = 0;for (b = 0; b < 3; b++)for (c = 0; c < tag[a][b]; c++)r[b] = r[b] * 10 + num[d++];if (r[0] + r[1] / r[2] == n && r[1] % r[2] == 0) count++;if (r[0] + r[2] / r[1] == n && r[2] % r[1] == 0) count++;if (r[1] + r[0] / r[2] == n && r[0] % r[2] == 0) count++;if (r[1] + r[2] / r[0] == n && r[2] % r[0] == 0) count++;if (r[2] + r[0] / r[1] == n && r[0] % r[1] == 0) count++;if (r[2] + r[1] / r[0] == n && r[1] % r[0] == 0) count++;}while (i < N){int k = i + 1;while (k < N){swap(num + i, num + k);count += go(i + 1, n);swap(num + i, num + k);k++;}i++;}return count;}void main(){int n;scanf("%d", &n);printf("%d", go(0, n)); }10、剪格子#include"stdafx.h"#define N 10int num[N][N];// tag是用来标志格子有没有加入,用颜色来表示,1为已加入,黑色,0为没加入,白色// 初始化全为白色int tag[N][N] = {0};int m, n;int r = 100;//判断格子(i,j)颜色是否t,一样的话就找他周围颜色也为t//返回找到的总数int find(int i, int j, int t, int ntag[][N]){int count = 0;//出界或走过if (i < 0 || i >= n || j < 0 || j >= m || ntag[i][j] == 1)return 0;//标为已走过ntag[i][j] = 1;//颜色不一样,返回if (tag[i][j] != t)return 0;count++;count += find(i - 1, j, t, ntag);count += find(i + 1, j, t, ntag);count += find(i, j - 1, t, ntag);count += find(i, j + 1, t, ntag);return count;}//判断是否当前的tag,能不能剪成两块int isbad(){int i, j, k = 0;int t = tag[0][0];int ntag1[N][N] = {0};int ntag2[N][N] = {0};//找一块连在一起的黑格子int ge1 = find(0, 0, t, ntag1);for (i = 0; i < n; i++){for (j = 0; j < m; j++){if (tag[i][j] != t){k = 1;break;}}if (k == 1)break;}if (i == n && j == m)return 0;//找连在一起的白格子int ge2 = find(i, j, tag[i][j], ntag2);return ge1 + ge2 != m * n;//若黑+白!= 总数说明不止两块,如:黑$白#/*##$$##$$##这种情况就有2块白的,1块黑的*/}// 判断格子(i,j)是否出界,以及判断格子可不可以剪成两块连续的格子int bad(int i, int j){if (i < 0 || i >= n || j < 0 || j >= m || tag[i][j] == 1)return 1;tag[i][j] = 1; //格子加入int b = isbad(); //判断格子可不可以剪成两块连续的格子tag[i][j] = 0; //格子退出return b;}/** i, j 下一个要加入的格子* k 已加入的格子数* count 剩余总分* 执行完,全局tag是没有改变的*/void go(int i, int j, int k, int count){// 判断格子是否可加入if (bad(i, j) || count < num[i][j])return;// 格子可加入,已加入格子数+1k++;// 如果剩余总分刚好等于加入的格子的分数,那么这种情况符合要求if (count == num[i][j]){if (r > k)r = k;return;}// 加入格子,tag改变为1tag[i][j] = 1;count -= num[i][j];// 寻找周围格子是否可加入go(i - 1, j, k, count); // 执行完,tag是没有改变的go(i + 1, j, k, count); // 执行完,tag是没有改变的go(i, j - 1, k, count); // 执行完,tag是没有改变的go(i, j + 1, k, count); // 执行完,tag是没有改变的// 格子退出, tag恢复为0,也就是保证执行完,tag是没有改变的tag[i][j] = 0;}int main(){scanf("%d %d", &m, &n);int i, j;int half = 0;for (i = 0; i < n; i++)for (j = 0; j < m; j++){scanf("%d", &num[i][j]);// 计算总分half += num[i][j];}// 判断总分是否为偶数if (half % 2 == 0 && half >= num[0][0] * 2) {// 计算总分的一半half /= 2;// go(int i, int j, int k, int count)// 下一个要加入的格子为i, j: (0,0)// 已加入的格子数为0// half 剩余总分go(0, 0, 0, half);}if (r == 100)r = 0;printf("%d", r);return 0;}。

2013第四届蓝桥杯-预赛真题-Java本科-B组考生须知

2013第四届蓝桥杯-预赛真题-Java本科-B组考生须知

第四届“蓝桥杯”全国软件专业人才设计与创业大赛选拔赛Java本科B组考生须知:●考试开始后,选手首先下载题目到本机不被还原的盘符,并使用考场现场公布的解压密码解压试题。

●考试时间为9:00-13:00,共4个小时。

13点整时间截止时,将无法提交答案。

选手因考试结束不能提交答案的,责任由选手自负。

●在考试强制结束前,选手可以主动结束考试(需要身份验证),结束考试后将无法继续提交或浏览答案。

●选手可浏览自己已经提交的答案。

●对同一题目,选手可多次提交答案,以最后一次提交的答案为准。

●选手切勿在提交的代码中书写“姓名”、“考号”,“院校名”等与身份有关的信息或其它与竞赛题目无关的内容,否则成绩无效。

●选手必须通过浏览器方式提交自己的答案。

选手在其它位置的作答或其它方式提交的答案无效。

●试题包含三种类型:“结果填空”、“代码填空”与“程序设计”。

结果填空题:要求参赛选手根据题目描述直接填写结果。

求解方式不限。

不要求源代码。

把结果填空的答案直接通过网页提交即可,不要书写多余的内容,比如:注释说明。

代码填空题:要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。

所填写的代码不超过一条语句(即中间不能出现分号)。

把代码填空的答案(仅填空处的答案,不包括题面已存在的代码)直接通过网页提交即可,不要书写多余的内容,比如:注释或说明文字。

程序设计题目:要求选手设计的程序对于给定的输入能给出正确的输出结果。

考生的程序只有能运行出正确结果,才有机会得分。

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

选手的程序必须是通用的,不能只对试卷中给定的数据有效。

所有源码必须在同一文件中。

调试通过后,拷贝提交。

注意:不要使用package语句。

源程序中只能出现JDK1.5中允许的语法或调用。

不能使用1.6或更高版本的特性。

注意:选手代码的主类名必须为:Main,否则会被判为无效代码。

第四届蓝桥杯校内选拔赛试题java组

第四届蓝桥杯校内选拔赛试题java组

第四届“蓝桥杯”全国软件专业人才设计与创业大赛校内选拔赛试题(Java组)第一部分:准备工作:1、在D:盘中建立一个以自己“学号+姓名”命名的考生文件夹。

如:学号:123456,姓名:张三,则考生文件夹为:123456张三2、答题时:(1)填空题的答案全部写在一个记事本(.txt)文件中,文件名为“tk_姓名的首字母”。

如:姓名:张三,则文件名为“tk_zs.txt”(2)编程题,每个小题一个源文件,每道题的源程序文件名为:“姓名的首字母+题号”。

如:姓名:张三,第1小题,源程序文件名为“zs1.java”3、答题结束时,请把填空题答案文件和所有的源程序文件复制到您的考生文件夹中,再把考生文件夹复制到F:\LQXB4中。

第二部分:试题一、填空题:(第空5分,共50分)1、素数问题输入一个正整数,判断它是否为素数。

素数就是该数只能被1和它本身整除,除1之外的正整数。

#include <stdio.h>#include <math.h> /* 程序中调用平方根函数sqrt,需包含math.h */void main( ){int number,i,k;printf("Please enter a positive integer:");scanf("%d",&number);k=(int)sqrt(number);for(i=2;【1】______________;i++)if(number%i==0) break;/* 如果number能被某个i整除,则number不是素数,提前结束循环 *//*若number是素数,i>k时for循环才结束,若number不是素数,i<=k时,就提前结束循环。

*/if(【2】_______________)printf("%d is a prime number.\n",number);elseprintf("%d isn't a prime number.\n",number);}运行情况1:Please enter a positive integer:77 is a prime number.运行情况2:Please enter a positive integer:2020 isn’t a prime number.2、下面程序段的执行结果是【3】______________3、圆周率我国古代数学家对圆周率方面的研究工作,成绩是突出的。

java蓝桥杯b组题目

java蓝桥杯b组题目

java蓝桥杯b组题目(实用版)目录1.Java 蓝桥杯 B 组题目概述2.Java 蓝桥杯 B 组题目的考试形式和要求3.Java 蓝桥杯 B 组题目的备考策略4.总结正文【Java 蓝桥杯 B 组题目概述】Java 蓝桥杯是我国高校计算机类专业的一项重要赛事,旨在发现和培养优秀的计算机人才。

其中,B 组题目是针对本科生举办的比赛,其内容涵盖了 Java 语言的基本语法、数据结构与算法、操作系统等方面的知识。

参加 Java 蓝桥杯 B 组比赛不仅能够提升自己的编程技能,还可以与其他优秀的计算机专业学生进行交流,拓宽视野。

【Java 蓝桥杯 B 组题目的考试形式和要求】Java 蓝桥杯 B 组题目的考试形式为在线编程,参赛选手需要在规定的时间内(通常为 4 小时)完成若干道题目。

这些题目通常包括程序设计题、算法题、调试题等,要求参赛选手具备扎实的 Java 编程基础和较强的逻辑思维能力。

【Java 蓝桥杯 B 组题目的备考策略】1.扎实掌握 Java 基础知识。

包括 Java 基本语法、面向对象编程、异常处理、集合框架等,这些知识点是解决 Java 蓝桥杯 B 组题目的基础。

2.学习数据结构与算法。

数据结构与算法是计算机专业的核心知识,对于解决编程题目具有重要意义。

可以学习常见的数据结构(如数组、链表、树、图等)和算法(如排序、查找、动态规划等),并熟练掌握常用的算法思想和方法。

3.多做练习,积累经验。

参加在线编程练习平台,如 LeetCode、牛客网等,可以提高自己的编程能力和应对题目的技巧。

同时,多参加模拟赛,了解自己在考试环境下的应对能力,为正式比赛做好充分的准备。

4.分析总结,查漏补缺。

在练习过程中,要注重总结自己遇到的问题和不足,查找资料和学习他人的解题方法,不断提高自己的编程水平。

【总结】Java 蓝桥杯 B 组题目对于计算机专业的学生来说是一个很好的锻炼和学习机会。

要想在比赛中取得好成绩,需要扎实掌握 Java 基础知识,学习数据结构与算法,多进行练习和总结。

蓝桥杯软件开发大赛试题

蓝桥杯软件开发大赛试题

蓝桥杯软件开发大赛试题全文共四篇示例,供读者参考第一篇示例:蓝桥杯软件开发大赛是一项举办多年的IT技术比赛,旨在激发青少年对软件开发的兴趣,培养他们的编程能力和创新思维。

每年举办的蓝桥杯软件开发大赛都吸引了众多热爱编程的学生参与,展示他们的才华和技能。

本文将介绍蓝桥杯软件开发大赛的试题设置和一些参赛注意事项,希望对准备参加比赛的同学有所帮助。

蓝桥杯软件开发大赛的试题种类多样,涉及算法设计、数据结构、数据库应用、Web开发、移动应用等多个领域。

比赛分为初赛和决赛两个阶段,初赛主要是在线笔试,考察学生的编程基础和思维能力;决赛则是现场编程比赛,要求参赛选手根据赛题要求设计和实现一个完整的软件项目。

在蓝桥杯软件开发大赛的初赛中,通常会涉及一些常见的编程题目,比如求最大公约数、字符串匹配、图遍历等。

参赛选手需要在规定的时间内完成这些题目,通过分析问题、设计解决方案、编写代码,并最终得到正确的结果。

初赛中还会有一些开放性的编程题目,要求参赛选手自行设计算法和数据结构,解决现实生活中的问题,展现自己的创新能力和实践能力。

而蓝桥杯软件开发大赛的决赛阶段则更加具有挑战性,参赛选手需要在有限的时间内完成一个完整的软件项目,包括需求分析、系统设计、代码实现、测试调试等环节。

在决赛中,参赛选手还需要展示出团队协作和沟通能力,完成一个协作开发的软件项目,从而全面展现出自己的技术水平和综合素质。

在参加蓝桥杯软件开发大赛时,选手需要注意一些事项。

要认真准备,掌握扎实的编程基础和工程实践能力,熟悉各种编程语言和开发工具。

要多练习,解决更多的编程题目,提升自己的编程技能和解决问题的能力。

要注意团队合作,能够有效沟通和协作,充分发挥每个团队成员的优势,共同完成比赛任务。

蓝桥杯软件开发大赛是一个很好的展示自己技能、学习交流的平台,能够锻炼参赛选手的编程能力和团队协作能力。

希望更多的学生能够参加这样的比赛,挑战自我,不断提高,追求卓越。

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

第四届全国蓝桥杯软件设计大赛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。

相关文档
最新文档