第四届蓝桥杯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历年真题及答案整理(共129道题目及答案)
蓝桥杯java历年真题及答案整理(参考网络资料整理出来)1.字符排序算法是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种。
如:给定 A、B、C三个不同的字符,则结果为:ABC、ACB、BAC、BCA、CAB、CBA一共3!=3*2=6种情况。
package Question1_9;import java.util.Scanner;import java.util.Vector;public class Question1 {public static long count=0;private void fullPermutation(Vector<Character>sourse, Vector<Character> result) {if(sourse.size()==0){for (int i = 0; i < result.size(); i++) {System.out.print(result.elementAt(i));}System.out.print("\n");count++;return;}for (int i = 0; i < sourse.size(); i++) {Vector<Character>tsourse=new Vector<Character>(sourse);Vector<Character>tresult=new Vector<Character>(result);tresult.add(sourse.elementAt(i));tsourse.remove(i);new Question1().fullPermutation(tsourse, tresult);}}public static void main(String[] args) {Scanner scanner=new Scanner(System.in);int n=scanner.nextInt();Vector<Character> sourse=new Vector<Character>();Vector<Character> result=new Vector<Character>();for (int i = 0; i < n; i++) {sourse.add((char)('A'+i));}new Question1().fullPermutation(sourse, result);System.out.println(Question1.count);}}方法二:import java.util.ArrayList;import java.util.Iterator;import java.util.LinkedHashSet;import java.util.List;import java.util.Scanner;import java.util.Set;public class Demo03 {// 去掉重复元素,放入lispublic static void removeDuplicate(String s,Set<Character> lis){for(char x:s.toCharArray()){lis.add(x);}}// 为方便操作将sets 转lispublic static void convert(List<Character> lis,Set<Character> sets){Iterator<Character> iter = sets.iterator();while(iter.hasNext()){lis.add(iter.next());}}// 检测符合条件的元素组合public static void check(Set<Character> sets){List<Character> lis = new ArrayList<Character>();convert(lis,sets); // 为方便操作将sets 转lisStringBuffer sb = new StringBuffer();for(int i=0;i<lis.size()-2;i++){for(int j=i+1;j+1<lis.size();j++){ // 向后添加两位,所以j+1<lis.size() for(int k=j+1;k<lis.size();k++){sb.append(lis.get(i));sb.append(lis.get(j));sb.append(lis.get(k));System.out.println(sb); // 输出组合sb.setLength(0); // 清空}}}}public static void main(String[] args){Scanner scan = new Scanner(System.in);System.out.println("输入串(不大于30个字符)。
第四届蓝桥答案
第四届“蓝桥杯”选拔赛试题高职组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组考生须知
第四届“蓝桥杯”全国软件专业人才设计与创业大赛选拔赛Java本科B组考生须知:●考试开始后,选手首先下载题目到本机不被还原的盘符,并使用考场现场公布的解压密码解压试题。
●考试时间为9:00-13:00,共4个小时。
13点整时间截止时,将无法提交答案。
选手因考试结束不能提交答案的,责任由选手自负。
●在考试强制结束前,选手可以主动结束考试(需要身份验证),结束考试后将无法继续提交或浏览答案。
●选手可浏览自己已经提交的答案。
●对同一题目,选手可多次提交答案,以最后一次提交的答案为准。
●选手切勿在提交的代码中书写“姓名”、“考号”,“院校名”等与身份有关的信息或其它与竞赛题目无关的内容,否则成绩无效。
●选手必须通过浏览器方式提交自己的答案。
选手在其它位置的作答或其它方式提交的答案无效。
●试题包含三种类型:“结果填空”、“代码填空”与“程序设计”。
结果填空题:要求参赛选手根据题目描述直接填写结果。
求解方式不限。
不要求源代码。
把结果填空的答案直接通过网页提交即可,不要书写多余的内容,比如:注释说明。
代码填空题:要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。
所填写的代码不超过一条语句(即中间不能出现分号)。
把代码填空的答案(仅填空处的答案,不包括题面已存在的代码)直接通过网页提交即可,不要书写多余的内容,比如:注释或说明文字。
程序设计题目:要求选手设计的程序对于给定的输入能给出正确的输出结果。
考生的程序只有能运行出正确结果,才有机会得分。
注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
所有源码必须在同一文件中。
调试通过后,拷贝提交。
注意:不要使用package语句。
源程序中只能出现JDK1.5中允许的语法或调用。
不能使用1.6或更高版本的特性。
注意:选手代码的主类名必须为:Main,否则会被判为无效代码。
蓝桥杯本科java试题及答案
蓝桥杯本科java试题及答案蓝桥杯本科Java试题及答案一、选择题(每题2分,共10分)1. 在Java中,以下哪个关键字用于定义类?A. classB. functionC. interfaceD. struct答案:A2. 下列哪个是Java中的合法标识符?A. 2classB. class@2C. _classD. class-class答案:C3. Java中的哪个类提供了一种计算时间和日期的方法?A. DateB. TimeC. CalendarD. Clock答案:C4. 在Java中,以下哪个是正确的条件表达式?A. if (x = 5)B. if (x == 5)C. if (x : 5)D. if (x / 5)答案:B5. Java中的异常处理机制是通过哪两个关键字实现的?A. try-catchB. if-elseC. switch-caseD. for-loop答案:A二、填空题(每题3分,共15分)1. Java中的所有类都是继承自ng.________类。
答案:Object2. 在Java中,________关键字用于实现方法的多态。
答案:override3. Java中的集合框架主要分为两大类:________和________。
答案:List、Set4. Java中的线程同步机制是通过________关键字实现的。
答案:synchronized5. Java中,要实现网络通信,可以使用________类。
答案:Socket三、简答题(共20分)1. 请简述Java中接口和抽象类的区别。
(10分)答案:接口定义了一组可供实现的抽象方法,它不包含任何实现细节,一个类可以实现多个接口。
抽象类可以包含抽象方法和具体方法,它提供了一个通用的模板,一个类只能继承一个抽象类。
接口主要用于定义一个或多个类必须遵守的规则,而抽象类则更侧重于代码的共享和重用。
2. 请解释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组题目(实用版)目录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 基础知识,学习数据结构与算法,多进行练习和总结。
最新蓝桥杯初赛b组试题
第一题正确答案:52488(我居然上来第一题就错了居然写了13440→_→)//cout<<8*9*9*9*9; →_→第二题结果填空5‘星系炸弹在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,2014年11月9日放置,定时为1天,请你计算它爆炸的准确日期。
请填写该日期,格式为yyyy-mm-dd 即4位年份2位月份2位日期。
比如:2015-02-19 请严格按照格式书写。
不能出现其它文字或符号。
-题解:不用废话,直接手算顶多3分钟,注意2016是闰年正确答案:2017-08-05第三题结果填空9‘三羊献瑞观察下面的加法算式:祥瑞生辉+ 三羊献瑞-三羊生瑞气(如果有对齐问题,可以参看【图1.jpg】)其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
-题解:水题,给“祥瑞生辉三羊献气”编号01234567,直接回溯穷举即可1 #include <iostream>2using namespace std;第三题正确答案:1085第四题代码填空11‘格子中输出StringInGrid函数会在一个指定大小的格子中打印指定的字符串。
要求字符串在水平、垂直两个方向上都居中。
如果字符串太长,就截断。
如果不能恰好居中,可以稍稍偏左或者偏上一点。
下面的程序实现这个逻辑,请填写划线部分缺少的代码。
对于题目中数据,应该输出:++abcd1234++(如果出现对齐问题,参看【图1.jpg】)注意:只填写缺少的内容,不要书写任何题面已有代码或说明性文字。
-题解:我是一名OI党,入门直接学的是C++,结果考了个printf里面%*s的用法。
太特么冷门了,穷举了没试出来,原来后面的参数要跟两个。
历年蓝桥杯省赛B组真题试题
for(j = 0 ; j < 4 ; j ++) flag[i][j] = 1;
flag[0][0] = 0; flag[2][3] = 0; }
void Solve() {
int dir[8][2] = { 0,1,0,-1,1,0,-1,0,1,1,1,-1,-1,1,-1,-1}; int book = true; for(int i = 0 ; i < 3 ; i ++) {
int main() {
int i; int a[] = {5,13,6,24,2,8,19,27,6,12,1,17}; int N = 12;
quicksort(a, 0, N -1);
for(i=0; i<N; i++) printf("%d ", a[i]); printf("\n");
return 0; }
num[n]=0;
}
}
}
int main() {
memset(num,0,sizeof(num)); memset(visit,0,sizeof(visit)); dfs(1); cout<<sum; return 0; }
4 / 19
(4) 快速排序
历年蓝桥杯省赛 B 组真题试题
排序在各种场合经常被用到。 快速排序是十分常用的高效率的算法。
if(!visit[i]) {
visit[i] = true; mpt[x][y] = i; dfs(index+1); visit[i] = false; } } } else { dfs(index+1); } } int main() { init(); dfs(0); printf("%d\n",ans); return 0; }
蓝桥杯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`用于保存偶数。
蓝桥杯javab组模拟题
蓝桥杯javab组模拟题一、介绍1.1 蓝桥杯蓝桥杯是中国著名的计算机竞赛之一,分为初赛和决赛两个阶段,每年吸引了成千上万的中学生和大学生参与。
其中,javab组是蓝桥杯的一个比赛项目,要求参赛者使用Java语言来完成编程任务。
1.2 模拟题为了帮助参赛者更好地准备蓝桥杯javab组的比赛,官方通常会提供一些模拟题供参赛者练习和熟悉比赛的题型和要求。
本文将围绕蓝桥杯javab组模拟题展开讨论,探讨如何有效地完成模拟题。
二、理解题目2.1 题目要求在解答任何一道题目之前,首先要对题目进行仔细地阅读和理解。
这可以帮助我们明确题目的要求和限制条件,从而更好地规划解题思路。
2.2 分析输入输出在理解题目的同时,我们还需要对输入和输出进行分析。
通常,题目会明确给出输入格式和输出格式,我们需要将其转化为具体的数据结构或代码逻辑。
2.3 确定解题思路理解题目和分析输入输出后,我们可以根据题目要求和限制条件确定解题思路。
这可能涉及到算法选择、数据结构设计等方面的判断。
三、解题步骤3.1 输入处理在开始编写程序之前,我们需要先进行输入处理。
这包括获取用户输入的数据、对输入进行格式化和校验等步骤。
3.2 算法实现一旦输入处理完成,我们可以着手编写算法来解决问题。
这可能涉及到递归、动态规划、图算法等各种算法思想。
3.3 输出结果当算法实现完成后,我们需要将结果输出。
这可能需要对结果进行格式化和排序等操作,以满足题目的要求。
3.4 程序测试最后,我们需要对程序进行测试,以确保它能够正确地处理各种输入情况。
这包括正常输入、边界输入以及异常输入等情况。
四、解题技巧4.1 知识储备在解题过程中,我们需要运用一些基本的编程知识。
这包括数据类型、运算符、控制流语句等基本概念。
4.2 算法思想解题过程中,合理选择和运用算法思想是至关重要的。
我们可以借鉴已有的经典算法,也可以根据题目特点进行创新。
4.3 优化策略除了正确性以外,我们还可以考虑优化策略。
蓝桥杯java试题及答案
蓝桥杯java试题及答案【篇一:蓝桥杯java历年真题(共129道题目及答案)】这样的,如果给定n个不同字符,将这n个字符全排列,最终的结果将会是n!种。
如:给定a、b、c三个不同的字符,则结果为:abc^ acb、bac、bca、cab> cba—共3!=3*2=6 种情况。
package questiord_9;〃有问题。
-广import java.util.scan ner;import java.util.vector;public class questiord {public static long count=0;private void fullpermutation(vectorcharactersourse, vectorcharacter result) {if(sourse.size()==0){for (int i = 0; i result.size(); i++) {system.out. print(result.elementat(i));}system.out. print(\n);count++;return;}for (int i = 0; i sourse.size(); i++) { vectorcharactertsourse=new vectorcharacter(sourse); vectorcharactertresult=new vectorcharacter( result); tresult.add(sourse.elementat(i)); tsourse.remove(i);new question1().fullpermutation(tsourse, tresult);}}public static void main(stringQ args) { scanner seanner=new scanner(system」n); int n=scanner.nextint();vectorcharacter sourse=new vectorcharacter(); vectorcharacter result=new vectorcharacter();for (int i = 0; i n; i++) {sourse.add((char)(a-i-i));}new questiord().fullpermutation(sourse, result); system.out. pri ntln (questionl.count);}}*/方法二import java.util.arraylist;import java.util.iterator;import java.util」inkedhashset;import java.util.list;import java.util.sca nn er;import java.util.set;public class demo03 {II去掉重复元素,放入lispublic static void removeduplicate(string s,setcharacter lis){ for(char x:s.tochararray()){ lis.add(x);}}II为方便操作将sets转lispublic static void convert(listcharacter lis,setcharactersets){ iteratorcharacter iter = sets.iterator();while(iter.hasnext()){ lis.add(iter.next());II检测符合条件的元素组合public static void check(setcharacter sets){ listcharacter lis = new arraylistcharacter(); convert(lis,sets); II为方便操作将sets 转lis stringbuffer sb = new stringbuffer();for(int i=0;ilis.size()-2;i++){for(int j=i+1 ;j+1 lis.size();j++){// 向后添加两位,所以j+1 lis.size() for(int k=j+1;klis.size();k++){sb.appe nd(lis.get(i)); sb.append(lis.get(j)); sb.append(lis.get(k)); system.out.println(sb); II输出组合sb.setlength(O); II清空}}}}public static void main(string[] args){scanner scan = new scanner(system.in); system.out.println(输入串(不夭于30个李符)。
java蓝桥杯b组题目
java蓝桥杯b组题目
Java蓝桥杯B组题目是指蓝桥杯全国软件和信息技术专业人才
大赛的B组Java题目。
蓝桥杯是中国最具影响力的计算机竞赛之一,旨在选拔和培养优秀的计算机人才。
每年的蓝桥杯比赛都会发布一系列的题目,其中包括了不同难
度和类型的题目,涵盖了计算机科学与技术的各个方面。
B组题目
主要面向大学本科及以下学生,难度适中。
由于蓝桥杯竞赛的题目每年都会更新,所以具体的B组题目会
根据比赛年份而有所不同。
以下是一些可能出现的B组题目类型:
1. 算法题,要求学生设计和实现特定的算法,如排序算法、查
找算法、图算法等。
2. 编程题,要求学生使用Java语言编写程序,解决实际问题,如字符串处理、数学计算、模拟等。
3. 数据结构题,要求学生使用合适的数据结构来解决问题,如栈、队列、链表、树等。
4. 网络编程题,要求学生使用Java网络编程知识,实现网络通信、客户端-服务器模型等。
5. 图形界面题,要求学生使用Java图形界面库,设计和实现用户友好的界面,完成特定功能。
以上只是一些可能的题目类型,具体的题目内容会根据比赛年份和主题而有所不同。
参赛选手需要具备扎实的Java编程基础,熟悉常用的算法和数据结构,并且具备一定的问题解决能力和编程实践经验。
希望以上回答能够满足你的需求。
如果你有更具体的问题或需要更详细的回答,请随时提出。
java蓝桥杯b组题目
java蓝桥杯b组题目
摘要:
1.Java 编程语言简介
2.蓝桥杯B 组题目概述
3.Java 蓝桥杯B 组题目的解题思路和方法
4.总结
正文:
一、Java 编程语言简介
Java 是一种广泛使用的计算机编程语言,它具有跨平台性、安全性、简单性、面向对象等特点,被广泛应用于企业级应用开发、桌面应用、移动应用和Web 开发等领域。
Java 语言的特性使得它在全球范围内拥有大量的开发者社区,成为当今世界最流行的编程语言之一。
二、蓝桥杯B 组题目概述
蓝桥杯是中国的一项全国性计算机科学比赛,每年举办一次,吸引了来自全国各地的大量高校和中学生参加。
蓝桥杯比赛按照参赛选手的年级和水平分为A 组、B 组和C 组。
B 组是针对高中生举办的比赛,主要考察选手的计算机编程能力。
三、Java 蓝桥杯B 组题目的解题思路和方法
对于Java 蓝桥杯B 组题目,解题的关键在于深入理解Java 编程语言的基本语法和面向对象编程的思想,熟练掌握Java 的常用类库和API,以及灵活运用数据结构和算法。
在解题过程中,需要注意以下几点:
1.仔细阅读题目,理解题目要求和约束条件,确定解题思路。
2.编写代码时,要注重代码的可读性和可维护性,遵循Java 编码规范。
3.在编写程序时,要充分考虑边界条件和异常情况,保证程序的健壮性。
4.在解决复杂问题时,可以采用分治、动态规划等算法思想,提高程序的效率。
四、总结
Java 蓝桥杯B 组题目是针对高中生举办的计算机编程比赛,对于提高选手的编程能力和解决实际问题的能力有重要意义。
2013年第四届蓝桥杯软件类省赛真题_CC++程序设计本科B组
小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。
有一次,老师出的题目是:36 x 495 = ?
他却给抄成了:396 x 45 = ?
但结果却很戏剧性,他的答案竟然是对的!!
因为 36 * 495 = 396 * 45 = 17820
}
}
}
如果给定数组:
25,18,-2,0,16,-5,33,21,0,19,-16,25,-3,0
则排序后为:
-3,-2,-16,-5,0,0,0,21,19,33,25,16,18,25
请分析代码逻辑,并推测划线处的代码,通过网页提交
注意:仅把缺少的代码作为答案,千万不要填写多余的代码、符号或说明文字!!
例如:
用户输入:
2
5 6 8 11 9
10 12 9
则程序输出:
7 9
再例如:
用户输入:
6
164 178 108 109 180 155 141 159 104 182 179 118 137 184 115 124 125 129 168 196
172 189 127 107 112 192 103 131 133 169 158
资源约定:
峰值内存消耗 < 64M
CPU消耗 < 5000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意: main函数需要返回0
注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
128 102 110 148 139 157 140 195 197
蓝桥杯比赛javaB组练习《四平方和》
蓝桥杯⽐赛javaB组练习《四平⽅和》四平⽅和四平⽅和定理,⼜称为拉格朗⽇定理:每个正整数都可以表⽰为⾄多4个正整数的平⽅和。
如果把0包括进去,就正好可以表⽰为4个数的平⽅和。
⽐如:5 = 0^2 + 0^2 + 1^2 + 2^27 = 1^2 + 1^2 + 1^2 + 2^2(^符号表⽰乘⽅的意思)对于⼀个给定的正整数,可能存在多种平⽅和的表⽰法。
要求你对4个数排序:0 <= a <= b <= c <= d并对所有的可能表⽰法按 a,b,c,d 为联合主键升序排列,最后输出第⼀个表⽰法程序输⼊为⼀个正整数N (N<5000000)要求输出4个⾮负整数,按从⼩到⼤排序,中间⽤空格分开例如,输⼊:5则程序应该输出:0 0 1 2再例如,输⼊:12则程序应该输出:0 2 2 2再例如,输⼊:773535则程序应该输出:1 1 267 838资源约定:峰值内存消耗(含虚拟机) < 256MCPU消耗 < 3000ms分析因为题⽬要求4个数从⼩到⼤并且取最⼩的⼀项输出,所以⽤四个for循环来表⽰四个数,并且内层的循环变量起始值=外层变量,来确保有顺序,这样写还有⼀个好处,当选取出第⼀个项时,这个结果就是最⼩的结果项,此时就可以return了。
第⼀版代码如下:import java.util.Scanner;public class fifteen {public static void main(String[] args){int s;Scanner in=new Scanner(System.in);s=in.nextInt();int a,b,c,d;for(a=0;a<=s;a++)for(b=a;b<=s;b++)for(c=b;c<=s;c++)for(d=c;d<=s;d++){if(s==(a*a+b*b+c*c+d*d)){System.out.println(a+" "+b+" "+c+" "+d);return;}}}}后⾯我发现,for循环⾥的执⾏条件可以细化,这样可以⼤⼤减少执⾏的次数,从⽽提⾼执⾏时效因此将for循环中间条件换成<=Math.sqrt(s)第⼆版代码如下:import java.util.Scanner;public class fifteen {public static void main(String[] args){int s;Scanner in=new Scanner(System.in);s=in.nextInt();int a,b,c,d;for(a=0;a<=Math.sqrt(s);a++)for(b=a;b<=Math.sqrt(s);b++)for(c=b;c<=Math.sqrt(s);c++)for(d=c;d<=Math.sqrt(s);d++){if(s==(a*a+b*b+c*c+d*d)){System.out.println(a+" "+b+" "+c+" "+d);return;}}}}执⾏结果如下:71 1 1 2。
Java本科蓝桥杯比赛试题,算法练习
1.黄金分割数0.618与美学有重要的关系。
舞台上报幕员所站的位置大约就是舞台宽度的0.618处,墙上的画像一般也挂在房间高度的0.618处,甚至股票的波动据说也能找到0.618的影子...黄金分割数是个无理数,也就是无法表示为两个整数的比值。
0.618只是它的近似值,其真值可以通过对5开方减去1再除以2来获得,我们取它的一个较精确的近似值:0.618034 有趣的是,一些简单的数列中也会包含这个无理数,这很令数学家震惊!1 3 4 7 11 18 29 47 .... 称为“鲁卡斯队列”。
它后面的每一个项都是前边两项的和。
如果观察前后两项的比值,即:1/3,3/4,4/7,7/11,11/18 ... 会发现它越来越接近于黄金分割数!你的任务就是计算出从哪一项开始,这个比值四舍五入后已经达到了与0.618034一致的精度。
请写出该比值。
格式是:分子/分母。
比如:29/472.有一群海盗(不多于20人),在船上比拼酒量。
过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。
再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。
当第4瓶酒平分喝下后,大家都倒下了。
等船长醒来,发现海盗船搁浅了。
他在航海日志中写到:“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船......”请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。
如果有多个可能的答案,请列出所有答案,每个答案占一行。
格式是:人数,人数,...例如,有一种可能是:20,5,4,2,0public class Test_2 {public static void main(String[] args) {for(int i=1; i<=16; i++)for(int j=1; j<=15; j++)for(int k=1; k<=14; k++)for(int l=1; l<=13; l++){int sum = i + j + k + l;if(sum <= 20 && 1.0/sum + 1.0/(sum-i) + 1.0/(sum-i-j) + 1.0/(sum-i-j-k) == 1.0)System.out.println(sum+","+(sum-i)+","+(sum-i-j)+","+l);}}}3.汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。
36-2018蓝桥杯JavaB组试题及答案
36-2018蓝桥杯JavaB组试题及答案1:第⼏天2000年的1⽉1⽇,是那⼀年的第1天。
那么,2000年的5⽉4⽇,是那⼀年的第⼏天?注意:需要提交的是⼀个整数,不要填写任何多余内容。
⽤excel算,答案125.2.标题:⽅格计数如图p1.png所⽰,在⼆维平⾯上有⽆数个1x1的⼩⽅格。
我们以某个⼩⽅格的⼀个顶点为圆⼼画⼀个半径为1000的圆。
你能计算出这个圆⾥有多少个完整的⼩⽅格吗?注意:需要提交的是⼀个整数,不要填写任何多余内容。
public class Main {public static void main(String[] args) {int R=1000;int a=1000,b=0,tb=b,count=0;for(a=1000;a>=0;a--) {while(a*a+b*b<=R*R)b++;b--;count+=a*(b-tb);tb=b;}System.out.println(count*4); //答案 3137548}}3.标题:复数幂设i为虚数单位。
对于任意正整数n,(2+3i)^n 的实部和虚部都是整数。
求 (2+3i)^123456 等于多少?即(2+3i)的123456次幂,这个数字很⼤,要求精确表⽰。
答案写成 "实部±虚部i" 的形式,实部和虚部都是整数(不能⽤科学计数法表⽰),中间任何地⽅都不加空格,实部为正时前⾯不加正号。
(2+3i)^2 写成: -5+12i,(2+3i)^5 的写成: 122-597i注意:需要提交的是⼀个很庞⼤的复数,不要填写任何多余内容。
的使⽤了注意点:1.直接在控制台输出的话,因为太⼤了,不会显⽰完整数字结果,结果如图,其实,粘贴到记事本就可以看到完整的。
2.或者直接⽤FileWrite()写⼊⽂本。
import java.io.FileWriter;import java.io.IOException;import java.math.BigInteger;import java.util.Scanner;public class Main {public static Scanner cin = new Scanner(System.in);public static void main(String[] args) throws IOException {// 求 (2+3i)^123456 等于多少?//存答案BigInteger a = new BigInteger("2");BigInteger b = new BigInteger("3");//乘数BigInteger c = new BigInteger("2");BigInteger d = new BigInteger("3");//注意我是从第⼆个开始的:for(int i = 1; i < 123456; i++) {BigInteger x = a.multiply(c).subtract(b.multiply(d));BigInteger y = a.multiply(d).add(b.multiply(c));a = x;b = y;}// System.out.println(a + "+" + d + "i");//写⽂件FileWriter file = new FileWriter("ans.txt");//需要判断虚部的正负号,如果是负的就不需要"+"if(pareTo(new BigInteger("0")) < 0) {System.out.println("b < 0");file.write(a + "" + d + "i");}else if (pareTo(new BigInteger("0")) > 0){System.out.println("b > 0");file.write(a + "+" + d + "i");}else {System.out.println("b = 0");file.write(a + "");}file.close();}}4.标题:测试次数x星球的居民脾⽓不太好,但好在他们⽣⽓的时候唯⼀的异常举动是:摔⼿机。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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
} } for (int i = min; i <= max; i++) {
if (hash[i] == 0) m = i;
if (hash[i] == 2) n = i;
} System.out.println(m + " " + n); } }
/* * 标题:幸运数 幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的“筛法”生成。 首先从1开始写出自然数1,2,3,4,5,6,.... 1 就是第一个幸运数。 我们从2这个 数开始。把所有序号能被2整除的项删除,变为: 1 _ 3 _ 5 _ 7 _ 9 .... 把它们缩紧,重新记序,为: 1 3 5 7 9 .... 。这时,3为第2个幸运数,然后 把所有能被3整除的序号位置的数删去。注意,是序号位置,不是那个数本身能 否被3整除!! 删除的应该是5,11, 17, ... 此时7为第3个幸运数,然后再删去序号位置能被7整除的(19,39,...) 最后剩下的序列类似: 1, 3, 7, 9, 13, 15, 21, 25, 31, 33, 37, 43, 49, 51, 63, 67, 69, 73, 75, 79, ... 本题要求: 输入两个正整数m n, 用空格分开 (m < n < 1000*1000)程序输出 位于m和n之间 的幸运数的个数(不包含m和n)。 例如:用户输入:1 20程序输出:5 例如:用户输入:30 69程序输出:8 */
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++;
算他一共有多少种ቤተ መጻሕፍቲ ባይዱ能的跳跃路线呢? */ class Node {
int x, y;
public Node(int xx, int yy) { x = xx; y = yy;
} }
public class Main { static int kinds = 0, dir[][] = { { 0, 1 }, { 1, 0 } }; static Node aim[] = new Node[8]; static boolean vis[][] = new boolean[4][5];
public class Main { static int hash[] = new int[100001];
public static void main(String[] args) { Scanner cin = new Scanner(System.in); int N = cin.nextInt(); int min = 100001, max = -1; int m = 0, n = 0; String strLine = cin.nextLine();// 过滤第一次输入n带来的回车换
行 while (N-- != 0) { strLine = cin.nextLine(); Scanner s = new Scanner(strLine); while (s.hasNextInt()) { int t = s.nextInt(); min = Math.min(t, min); max = Math.max(t, max); hash[t]++;
}
static void dfs(int start, int n) { if (start == 6) { check(a); } else { for (int i = 1; i < n; i++) { if (vis[i]) continue; a[start] = i; vis[i] = true; dfs(start + 1, n); vis[i] = false; } }
static void dfs(int start, int n) { if (start == n) kinds++; else { Node pre = aim[start]; for (int i = 0; i < 2; i++) { int x = pre.x + dir[i][0]; int y = pre.y + dir[i][1]; if (x < 4 && y < 5 && !vis[x][y]) { vis[x][y] = true; aim[start + 1] = new Node(x, y); dfs(start + 1, n); vis[x][y] = false; } } }
/* * 标题: 世纪末的星期 * 曾有邪教称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 Main { public static void main(String[] args) { BigDecimal one, ans; ans = one = BigDecimal.ONE; for (int i = 0; i < 1000; i++) { ans = one.add(ans); ans = one.divide(ans, 200, BigDecimal.ROUND_HALF_UP); System.out.println(ans); } System.out.println(ans.setScale(100,
public class Main { 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; } } }
再例如:用户输入:6 164 178 108 109 180 155 141 159 104 182 179 118 137 184 115 124 125 129 168 196172 189 127 107 112 192 103 131 133 169 158 128 102 110 148 139 157 140 195 197185 152 135 106 123 173 122 136 174 191 145 116 151 143 175 120 161 134 162 190149 138 142 146 199 126 165 156 153 193 144 166 170 121 171 132 101 194 187 188113 130 176 154 177 120 117 150 114 183 186 181 100 163 160 167 147 198 111 119 则程序输出:105 120 资源约定:峰值内存消耗(含虚拟机) < 64MCPU消耗 < 2000ms */ import java.util.Scanner;