蓝桥杯java高职C组

合集下载

2013蓝桥杯java c组考查知识点梳理

2013蓝桥杯java c组考查知识点梳理

2013蓝桥杯java c组考查知识点梳理在2013年的蓝桥杯中,Java和C语言组的考试一直备受关注。

很多参赛者都希望了解这两个组的考查知识点,以便更好地备战比赛。

本文将从深度和广度两个方面对2013蓝桥杯Java C组考查知识点进行全面评估,并据此撰写一篇有价值的文章,以帮助读者更好地掌握这些知识点。

一、Java组考查知识点梳理1. 基础知识在Java组的考试中,基础知识是最为重要的一部分。

包括数据类型、运算符、控制语句等基础知识点都是考查的重点。

对于面向对象的概念、类与对象、继承和多态等内容也需要有较好的掌握。

2. 集合框架Java中的集合框架是比较重要的知识点,包括List、Set、Map等集合的特点和用法,以及集合类的常见方法和使用场景等内容都是需要重点掌握的。

3. 异常处理在Java程序设计中,异常处理是至关重要的一部分。

需要了解异常的分类、抛出和捕获异常的方法,以及如何进行异常的处理和避免等内容。

4. 线程与并发Java中的线程和并发是比较复杂的知识点,在考试中也经常被考查。

需要了解线程的基本概念、线程的创建和启动、线程的状态转换以及线程同步和互斥等内容。

5. 其他内容除了以上主要知识点外,还需要对IO流、网络编程、反射等内容有一定的了解,以便在考试中有所准备。

二、C语言组考查知识点梳理1. 基础知识C语言组的考试同样重视基础知识的掌握。

包括基本数据类型、运算符、控制语句等内容都是考查的重点,需要注意各种数据类型的范围、运算符的优先级和结合性等知识点。

2. 数组与指针在C语言中,数组与指针是比较重要的知识点,需要了解数组的定义和使用方法,以及指针的概念、指针与数组的关系、指针的运算等内容。

3. 函数与指针函数是C程序设计中的重要部分,需要了解函数的声明和定义、函数的参数传递方式、函数的返回值、递归函数等内容。

指针作为C语言中的重要概念,也需要对指针的用法和指针与数组的关系有一定的了解。

2015年蓝桥杯javac组第二题

2015年蓝桥杯javac组第二题

题目:2015年蓝桥杯javac组第二题内容要点:1. 题目描述:给定一个字符串,要求在字符串中找出最长的连续不重复子串,并返回它的长度。

2. 输入:一个字符串,长度不超过xxx。

3. 输出:一个整数,表示最长的连续不重复子串的长度。

4. 例子:输入 "abcabcbb",输出 3;输入 "bbbbb",输出 1;输入"pwwkew",输出 3。

5. 解题思路:采用滑动窗口的方法,遍历字符串的过程中,维护一个窗口,通过移动窗口的起始位置和结束位置来寻找最长的连续不重复子串。

6. 算法步骤:6.1 初始化最长长度maxLength为0,起始位置start为0,字符索引字典charIndexDict为空。

6.2 遍历字符串,对于每个字符:6.2.1 如果字符在字典中存在且索引大于等于start,则将start移动到当前字符索引的下一个位置。

6.2.2 计算最长长度maxLength和当前窗口长度的较大值。

6.2.3 将当前字符的索引存入字典中。

7. 代码实现:```javapublic class Solution {public int lengthOfLongestSubstring(String s) {int maxLength = 0;int start = 0;Map<Character, Integer> charIndexMap = new HashMap<>();for (int end = 0; end < s.length(); end++) {char c = s.charAt(end);if (charIndexMap.cont本人nsKey(c) charIndexMap.get(c) >= start) {start = charIndexMap.get(c) + 1;}maxLength = Math.max(maxLength, end - start + 1); charIndexMap.put(c, end);}return maxLength;}}```文章结构:1. 概述:介绍2015年蓝桥杯javac组第二题的题目描述。

第八届蓝桥杯JavaC组国(决)赛真题

第八届蓝桥杯JavaC组国(决)赛真题

第⼋届蓝桥杯JavaC组国(决)赛真题解题代码部分来⾃⽹友,如果有不对的地⽅,欢迎各位⼤佬评论题⽬1、数位和题⽬描述数学家⾼斯很⼩的时候就天分过⼈。

⼀次⽼师指定的算数题⽬是:1+2+ (100)⾼斯⽴即做出答案:5050!这次你的任务是类似的。

但并⾮是把⼀个个的数字加起来,⽽是对该数字的每⼀个数位作累加。

这样从1加到100的“和”是:901从10加到15是:21,也就是:1+0+1+1+1+2+1+3+1+4+1+5,这个⼝算都可以出结果的。

按这样的“加法”,从1加到1000是多少呢? 请通过浏览器提交该结果。

当然,我们并不期望你能像⾼斯⼀样,发现数字背后深奥的秘密,只要请计算机帮忙,⼀切都easy!注意:你需要提交的是⼀个整数,不要填写任何多余的内容(⽐如:说明性⽂字)答案:13501public class _01数位和 {public static void main(String[] args) {int sum = 0;String str = "";for(int i = 1;i <= 1000;i++){str += i;}char[] arr = str.toCharArray();for(int i = 0;i < arr.length;i++){sum += arr[i]-'0';}System.out.println(sum);}}题⽬2、数字划分题⽬描述w星球的长⽼交给⼩明⼀个任务:1,2,3…16 这16个数字分为两组。

要求:这两组数字的和相同,并且,两组数字的平⽅和也相同,并且,两组数字的⽴⽅和也相同。

请你利⽤计算机的强⼤搜索能⼒解决这个问题。

并提交1所在的那个分组的所有数字。

这些数字要从⼩到⼤排列,两个数字间⽤⼀个空格分开。

即类似:1 4 5 8 … 这样的答案。

注意,只提交这⼀组数字,不要填写任何多余的内容。

笨笨有话说:只要⼀个组的成员确定了,另⼀个组的成员也就确定了。

第三届蓝桥杯全国软件大赛java高职组预赛题答案(全)

第三届蓝桥杯全国软件大赛java高职组预赛题答案(全)

第三届蓝桥杯全国软件大赛java高职组预赛题答案(全)第三届全国软件大赛java高职预赛题答案(全)仅供参考!1.public class A1 {public static void main(String[] args){//答案为:3789.86double AB = 52.1,BC = 57.2,CD = 43.5,DE = 51.9,EA = 33.4,EB = 68.2,EC = 71.9;System.out.println(mianji(AB, EB, EA) + mianji(EB, BC, EC) + mianji(EC, CD, DE));}static double mianji(double a,double b,double c){double s = (a + b + c)/2;return Math.sqrt(s * (s - a)*(s -b)*(s - c));}}2.public class A2 {//答案:19550604 有点不确定供参考觉得算法没什么问题public static void main(String[] args) {int a[] = gbs();int i = 0;while(i <= a.length){if(String.valueOf(a[i]).contains("06")&&String.valueOf(a[i]).c ontains("19" ))System.out.println(a[i]);i++;}}static int[] gbs(){int d[] = new int[5030];int j = 0;for(int i = 10000;i * 2012 >= 10000000; i--){d[j] = i * 2012;j++;}return d;}}3.import java.math.BigInteger;public class A3 {//答案:36893488147419103231public static void main(String[] args) {// TODO Auto-generated method stubBigInteger sum = new BigInteger("1");BigInteger n = new BigInteger("2");BigInteger num = new BigInteger("1");for(int i = 1;i <= 64; i++){num = num.multiply(n);System.out.println(num);sum = sum.add(num);}System.out.println(" "+ sum.toString());}}4.public class A4 {// 答案: 20,5,4,2,0//18,9,3,2,0//12,6,4,2,0public static void main(String[] args) {// TODO Auto-generated method stubfor(int d = 20; d > 0; d--){for(int c = 20; c > 3; c--){for(int b = 20; b > 2; b--){for(int a = 20; a > 1; a--){double s;s = 1.0/d + 1.0/a + 1.0/b + 1.0/c;if(s == 1.0&&(a<b&&b<c&&c<d))< p="">{System.out.println(d + "," + c +"," + b+","+a+","+ "0"); }}}}}5.public class B1 {public static void main(String[] args){System.out.println(getFirstNum("hhdh212"));}public static int getFirstNum(String s){if(s==null || s.length()==0) return -1;char c = s.charAt(0);if(c>='0' && c<='9') returnInteger.parseInt(String.valueOf(c).toString()); //填空return getFirstNum(s.substring(2)); //填空}}6. import java.util.*;public class B2 {public static void main(String[] args){List a = new Vector();a.addAll(Arrays.asList("A","2","3","4","5","6","7","8","9","10"," J","Q","K "));System.out.println(moveCard(a));}public static List moveCard(List src)if(src==null) return null;List dst = new Vector();for(;;){if(src.size() == 0) break; // 填空src.add(src.remove(0));dst.add(src.remove(0)); // 填空}return dst;}}7. import java.util.*;public class B3{public static void main(String[] args){System.out.println( isGoodBracket("...(..[.)..].{.(..).}...")); System.out.println( isGoodBracket("...(..[...].(.).){.(..).}...")); System.out.println( isGoodBracket(".....[...].(.).){.(..).}...")); System.out.println( isGoodBracket("...(..[...].(.).){.(..)....")); }public static boolean isGoodBracket(String s){Stack a = new Stack();for(int i=0; i<="" p="">{char c = s.charAt(i);if(c=='(') a.push(')');if(c=='[') a.push(']');if(c=='{') a.push('}');if(c==')' || c==']' || c=='}'){if(a.size()==0) return false; // 填空if(a.pop() != c) return false;}}if(s.replace(".", "").length()%2 !=0) return false; // 填空return true;}}8.import java.util.Scanner;public class C1 {public static void main(String[] args) {// TODO Auto-generated method stubScanner scanner = new Scanner(System.in);int num = scanner.nextInt();int j = num;String[] strings = new String[num];for(int i = 0;i < num;i++){Scanner scanner1 = new Scanner(System.in); strings[i] = scanner1.nextLine();}while( num >0){System.out.println(score(strings[j - num]));num--;}}static int score(String s){int score = 0;int num[] = new int[4];char c[] = s.toCharArray();for(int i = 0;i < 4;i++){if(c[i] == '6'||c[i] == '9'||c[i] == '8')score = score + 1;num[i] = Integer.parseInt(String.valueOf(c[i]));}if((c[0] == c[1]&&c[0] == c[2])&&(c[1] == c[2]&&c[2] == c[3]))score = score + 6;else {if((c[0] == c[1]&&c[0] == c[2])||(c[1] == c[2]&&c[2] == c[3])) score = score + 3;}if((c[0] == c[1]&&c[2] == c[3])&&(c[0] == c[2]&&c[1] == c[3]))score = score + 2;else {if((c[0] == c[1]&&c[2] == c[3])||(c[0] == c[2]&&c[1] == c[3])) score = score + 1;}boolean a = (num[0]== num[1]-1 && num[1] == num[2] - 1 && num[2] == num[3] -1);boolean b = ( num[0]== num[1]+1 && num[1] == num[2] + 1 && num[2] == num[3] +1);if(a || b){score = score +5;}return score;}}9.import java.util.Scanner;public class C2 {public static void main(String[] args) {// TODO Auto-generated method stub Scanner scanner = new Scanner(System.in); int num = scanner.nextInt();int j = num;String[] strings = new String[num];for(int i = 0;i < num;i++){Scanner scanner1 = new Scanner(System.in); strings[i] = scanner1.nextLine();}while( num >0){System.out.println(mima(strings[j - num])); num--;}}static String mima(String s){char[] c = s.toCharArray();//int count = c.length/6;int sum[] = {0,0,0,0,0,0};int length = 0;if(c.length%6 == 0)length = c.length/6;else {length = c.length/6 +1;}int i = 0;int j = 0;//System.out.println(length);while (i < 6){if(i >= c.length%6&&j*6+i>=c.length)sum[i] = sum[i] + 0;else{sum[i] = sum[i] + c[j*6 + i];}j++;if(j == length){i++;j= 0;}}//System.out.println(sum[0]+" "+sum[1] + " " + sum[2]+ " " + sum[3]+ " " + sum[4]+ " " + sum[5]);int[] mima = new int[6];String mimastring = "";i = 0;for(int num:sum){mima[i] = getnum(num);mimastring = mimastring.concat(String.valueOf(mima[i])); i++;}return mimastring;}static int getnum(int sum){int num = 0;char[] c = String.valueOf(sum).toCharArray();int i =0;while( i < c.length){num += Integer.parseInt(String.valueOf(c[i]));if (num >= 10){num = getnum(num);}i++;}return num;}}10.public class C3 {public static void main(String[] args) {// TODO Auto-generated method stub//String string = "123+4+5+67-89";char a[] = {' ','+','-'};char num[] = {'1','2','3','4','5','6','7','8','9'}; for(char x1:a)for(char x2:a)for(char x3:a)for(char x4:a)for(char x5:a)for(char x6:a)for(char x7:a)for(char x8:a){int result = 0;char s[] ={x1,x2,x3,x4,x5,x6,x7,x8};String string = "";for(int i = 0;i<=7;i++){string =string+num[i]+s[i];}string =string+num[8];string=string.replaceAll(" ","");String jianString[] = string.split("-");int addResult[] = new int[jianString.length]; addResult[0] = 0;StringaddString[] = jianString[0].split("[+]");for(int j =0;j<addstring.length;j++)< p="">{ addResult[0] += Integer.parseInt(String.valueOf(addString[j]));}result = addResult[0];for(int i =1;i<jianstring.length;i++)< p="">{String num1[] = jianString[i].split("[+]");result = result - Integer.parseInt(String.valueOf(num1[0]));for(intp = 1;p<num1.length;p++)< p="">result += Integer.parseInt(String.valueOf(num1[p]));}if(result == 110) System.out.println(string);}}}</num1.length;p++)<></jianstring.length;i++)<></addstring.length;j++)<></b&&b<c&&c<d))<>。

第四届蓝桥杯省赛高职JAVA语言C组真题

第四届蓝桥杯省赛高职JAVA语言C组真题

第四届蓝桥杯省赛高职JAVA语言C组真题1.标题:猜年龄小明带两个妹妹参加元宵灯会。

别人问她们多大了,她们调皮地说:“我们俩的年龄之积是年龄之和的6倍”。

小明又补充说:“她们可不是双胞胎,年龄差肯定也不超过8岁啊。

”请你写出:小明的较小的妹妹的年龄。

注意:只写一个人的年龄数字,请通过浏览器提交答案。

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

2.标题:等额本金小明从银行贷款3万元。

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

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

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

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

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

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

不要写多余内容(例如:多写了“元”或添加说明文字)4.骰子游戏标题:大衍数列中国古代文献中,曾记载过“大衍数列”, 主要用于解释中国传统文化中的太极衍生原理。

它的前几项是:0、2、4、8、12、18、24、32、40、50 ...其规律是:对偶数项,是序号平方再除2,奇数项,是序号平方减1再除2。

以下的代码打印出了大衍数列的前100 项。

for(int i=1; i<100; i++){if(________________) //填空System.out.println(i*i/2);elseSystem.out.println((i*i-1)/2);}请填写划线部分缺失的代码。

通过浏览器提交答案。

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

5.标题:写日志写日志是程序的常见任务。

第九届蓝桥杯JavaC组省赛真题

第九届蓝桥杯JavaC组省赛真题

第九届蓝桥杯JavaC组省赛真题解题代码部分来⾃⽹友,如果有不对的地⽅,欢迎各位⼤佬评论题⽬1、哪天返回题⽬描述⼩明被不明势⼒劫持。

后被扔到x星站再⽆问津。

⼩明得知每天都有飞船飞往地球,但需要108元的船票,⽽他却⾝⽆分⽂。

他决定在x星战打⼯。

好⼼的⽼板答应包⾷宿,第1天给他1元钱。

并且,以后的每⼀天都⽐前⼀天多2元钱,直到他有⾜够的钱买票。

请计算⼀下,⼩明在第⼏天就能凑够108元,返回地球。

要求提交的是⼀个整数,表⽰第⼏天。

请不要提交任何多余的内容。

package Lqb;public class Text27 {public static void main(String[] args) {int money=1;int dayMoney=1;int day=1;System.out.println("第 "+day+" 天:"+"⼯资:"+dayMoney+" "+money);while(money<108){dayMoney+=2;money+=dayMoney;day++;System.out.println("第 "+day+" 天:"+"⼯资:"+dayMoney+" "+money);}}}题⽬2、猴⼦分⾹蕉题⽬描述5只猴⼦是好朋友,在海边的椰⼦树上睡着了。

这期间,有商船把⼀⼤堆⾹蕉忘记在沙滩上离去。

第1只猴⼦醒来,把⾹蕉均分成5堆,还剩下1个,就吃掉并把⾃⼰的⼀份藏起来继续睡觉。

第2只猴⼦醒来,重新把⾹蕉均分成5堆,还剩下2个,就吃掉并把⾃⼰的⼀份藏起来继续睡觉。

第3只猴⼦醒来,重新把⾹蕉均分成5堆,还剩下3个,就吃掉并把⾃⼰的⼀份藏起来继续睡觉。

第4只猴⼦醒来,重新把⾹蕉均分成5堆,还剩下4个,就吃掉并把⾃⼰的⼀份藏起来继续睡觉。

蓝桥杯c组试题及答案

蓝桥杯c组试题及答案

蓝桥杯c组试题及答案一、选择题(每题5分,共20分)1. 下列关于C语言的描述,错误的是:A. C语言是一种高级语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言支持函数式编程答案:B2. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 下列关于指针的描述,正确的是:A. 指针可以存储变量的地址B. 指针可以存储变量的值C. 指针不能存储数组的地址D. 指针不能存储函数的地址答案:A4. 在C语言中,用于定义一个函数的关键字是:A. functionB. defC. voidD. int答案:D二、填空题(每题5分,共20分)1. 在C语言中,表示逻辑与的运算符是______。

答案:&&2. 用于声明一个整型变量的关键字是______。

答案:int3. 在C语言中,数组的索引是从______开始的。

答案:04. C语言中,用于结束一个程序的语句是______。

答案:return三、编程题(每题30分,共60分)1. 编写一个C语言程序,实现计算并输出100以内所有偶数的和。

```c#include <stdio.h>int main() {int sum = 0;for (int i = 2; i <= 100; i += 2) {sum += i;}printf("Sum of even numbers from 1 to 100 is: %d\n", sum); return 0;}```2. 编写一个C语言程序,实现一个简单的计算器,可以计算两个整数的加、减、乘、除。

```c#include <stdio.h>int main() {int a, b;char op;float result;printf("Enter first number: ");scanf("%d", &a);printf("Enter operator (+, -, *, /): ");scanf(" %c", &op);printf("Enter second number: ");scanf("%d", &b);switch (op) {case '+':result = a + b;break;case '-':result = a - b;break;case '*':result = a * b;break;case '/':if (b != 0)result = (float)a / b;else {printf("Division by zero error!\n"); return 1;}break;default:printf("Invalid operator!\n");return 1;}printf("Result: %.2f\n", result);return 0;}```。

蓝桥杯试题集 java c组

蓝桥杯试题集 java c组

蓝桥杯试题集 java c组
1.字符串的拼接:要求编写一个函数,将两个字符串s1和s2
拼接起来,返回拼接后的字符串。

2.数字的排序:给定一个包含若干个整数的数组,将数组中
的元素按照非递减顺序排列。

3.数组的查找:编写一个函数,在给定的整数数组中查找指
定的元素,如果找到则返回该元素的索引,否则返回-1。

4.数组的遍历:编写一个函数,按顺序访问给定整数数组中
的每个元素,并输出它们的值。

5.数组的插入:给定一个有序整数数组和一个目标值,将目
标值插入到数组中的适当位置,以保持数组的有序性。

6.数组的删除:从给定的有序整数数组中删除指定元素,并
保持数组的有序性。

7.数组的查找区间:编写一个函数,在给定的有序整数数组
中查找指定区间的元素,并返回该区间内元素的个数。

8.数组的排序:对给定的整数数组进行排序(升序或降
序),并返回排序后的数组。

9.数组的逆序:编写一个函数,将给定的整数数组逆序排
列。

10.字符串的替换:给定两个字符串s和p,将字符串s中所
有与字符串p匹配的部分替换为指定的字符串q,并返回替换后的字符串。

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

蓝桥杯j a v a高职C组文档编制序号:[KK8UY-LL9IO69-TTO6M3-MTOL89-FTT688]2016年蓝桥杯Java C组考试题(考试日期2016/3/20日)第一题:有奖猜谜小明很喜欢猜谜语。

最近,他被邀请参加了X星球的猜谜活动。

每位选手开始的时候都被发给777个电子币。

规则是:猜对了,手里的电子币数目翻倍,猜错了,扣除555个电子币, 扣完为止。

小明一共猜了15条谜语。

战果为:vxvxvxvxvxvxvvx其中v表示猜对了,x表示猜错了。

请你计算一下,小明最后手里的电子币数目是多少。

请填写表示最后电子币数目的数字。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

public static void main(String[] args) {int n=777;for(int i=1;i<=12;i++){if(i%2!=0){n=n*2;}elsen=n-555;}n=n*2;n=n*2;n=n-555;System.out.println(n);}答案:58497第二题:煤球数目有一堆煤球,堆成三角棱锥形。

具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球?请填表示煤球总数目的数字。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

public static void main(String[] args) {int sum[]=new int[101];int sum1=0;int s=0;for(int i=1;i<=100;i++){sum1=sum1+i;sum[i]=sum1;s=s+sum[i];}System.out.println(s);}答案:171700第三题:平方怪圈如果把一个正整数的每一位都平方后再求和,得到一个新的正整数。

对新产生的正整数再做同样的处理。

如此一来,你会发现,不管开始取的是什么数字,最终如果不是落入1,就是落入同一个循环圈。

请写出这个循环圈中最大的那个数字。

请填写该最大数字。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n=sc.nextInt();int max=0;for(int i=1;i<=50;i++){String st=""+n;int len=st.length();int[] a=new int[len];for(int j=0;j<len;j++){a[j]=Integer.parseInt(st.substring(j,j+1));a[j]=a[j]*a[j];}int sum=0;for(int j=0;j<len;j++){sum=sum+a[j];}n=sum;max=Math.max(max,n);}System.out.println(max);}答案:145第四题:骰子游戏我们来玩一个游戏。

同时掷出3个普通骰子(6个面上的数字分别是1~6)。

如果其中一个骰子上的数字等于另外两个的和,你就赢了。

下面的程序计算出你能获胜的精确概率(以既约分数表示)public class Main{public static int gcd(int a, int b){if(b==0) return a;return gcd(b,a%b);}public static void main(String[] args){int n = 0;for(int i=0; i<6; i++)for(int j=0; j<6; j++)for(int k=0; k<6; k++){if(i + j+2 == k+1 || i + k+2 == j+1 || k + j+2 == i+1) n++; //填空位置}int m = gcd(n,6*6*6);}}仔细阅读代码,填写划线部分缺少的内容。

注意:不要填写任何已有内容或说明性文字。

第五题:分小组9名运动员参加比赛,需要分3组进行预赛。

有哪些分组的方案呢?我们标记运动员为 A,B,C, (I)下面的程序列出了所有的分组方法。

该程序的正常输出为:ABC DEF GHIABC DEG FHIABC DEH FGIABC DEI FGHABC DFG EHI ABC DFH EGI ABC DFI EGH ABC DGH EFI ABC DGI EFH ABC DHI EFG ABC EFG DHI ABC EFH DGI ABC EFI DGH ABC EGH DFI ABC EGI DFH ABC EHI DFG ABC FGH DEI ABC FGI DEH ABC FHI DEG ABC GHI DEF ABD CEF GHI ABD CEG FHI ABD CEH FGI ABD CEI FGH ABD CFG EHI ABD CFH EGIABD CFI EGHABD CGH EFIABD CGI EFHABD CHI EFGABD EFG CHI..... (以下省略,总共560行)。

public class A{public static String remain(int[] a){String s = "";for(int i=0; i<a.length; i++){if(a[i] == 0) s += (char)(i+'A');}return s;}public static void f(String s, int[] a){for(int i=0; i<a.length; i++){if(a[i]==1) continue;a[i] = 1;for(int j=i+1; j<a.length; j++){if(a[j]==1) continue;a[j]=1;for(int k=j+1; k<a.length; k++){if(a[k]==1) continue;a[k]=1;a[k]=0;}a[j]=0;}a[i] = 0;}}public static void main(String[] args){int[] a = new int[9];a[0] = 1;for(int b=1; b<a.length; b++){a[b] = 1;for(int c=b+1; c<a.length; c++){a[c] = 1;String s = "A" + (char)(b+'A') + (char)(c+'A');f(s,a);a[c] = 0;}a[b] = 0;}}}仔细阅读代码,填写划线部分缺少的内容。

注意:不要填写任何已有内容或说明性文字。

第六题:凑算式B DEFA + --- + ------- = 10C GHI(如果显示有问题,可以参见【图1.jpg】)这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。

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

这个算式一共有多少种解法?注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。

递归:static int count=0;static boolean[] date;public static void main(String[] args) {int[] a=new int[10];date=new boolean[10];dp(a,1);System.out.println(count);}static void dp(int[] a,int s){if(s==10)if(a[3]==0||a[7]==0||a[8]==0||a[9]==0){return;}double q=(double)a[2]/a[3];doublew=(a[4]*100+a[5]*10+a[6])*1.00/(a[7]*100+a[8]*10+a[9]);double e=(double)a[1];if(q+w+e==10.00)count++;return ;}for(int i=1;i<=9;i++){if(date[i]==false){date[i]=true;a[s]=i;dp(a,s+1);date[i]=false;}}答案:29第七题:搭积木小明最近喜欢搭数字积木,一共有10块积木,每个积木上有一个数字,0~9。

搭积木规则:每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小。

最后搭成4层的金字塔形,必须用完所有的积木。

下面是两种合格的搭法:1 23 4 56 7 8 93 17 5 29 8 6 4请你计算这样的搭法一共有多少种?请填表示总数目的数字。

注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

递归:static int count=0;static boolean[] date;public static void main(String[] args) {int[] a=new int[10];date=new boolean[10];dp(a,0);System.out.println(count);}static void dp(int[] a,int s){if(s==10){if(a[0]>a[1]||a[0]>a[2])return;else if(a[1]>a[3]||a[1]>a[4])return;else if(a[2]>a[4]||a[2]>a[5])return;else if(a[3]>a[6]||a[3]>a[7])return;else if(a[4]>a[7]||a[4]>a[8])return;else if(a[5]>a[8]||a[5]>a[9])return;else{count++;return;}}for(int i=0;i<=9;i++){if(date[i]==false){date[i]=true;a[s]=i;dp(a,s+1);date[i]=false;}}}答案:768第八题:冰雹数任意给定一个正整数N,如果是偶数,执行: N / 2如果是奇数,执行: N * 3 + 1生成的新的数字再执行同样的动作,循环往复。

相关文档
最新文档