第十届蓝桥杯JavaB组真题

第十届蓝桥杯JavaB组真题

  • 组队
    本题总分:5 分
    【问题描述】
    作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员, 组成球队的首发阵容。 每位球员担任 1 号位至 5 号位时的评分如下表所示。请你计算首发阵容 1 号位至 5 号位的评分之和最大可能是多少?
    在这里插入图片描述

这个比较简单,可以直接手算,
答案:490

  • 不同子串
    本题总分:5 分
    【问题描述】
    一个字符串的非空子串是指字符串中长度至少为 1 的连续的一段字符组成 的串。例如,字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab,一共 7 个。 注意在计算时,只算本质不同的串的个数。 请问,字符串0100110001010001 有多少个不同的非空子串?
    【答案提交】
    这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
    答案:100
import java.util.*;

public class demo02 {

	public static void main(String[] args) {
		// 不同子串
		//基本思想,分类讨论:不同位数的字串一共有多少个,用set集合去除重复的子串
		Scanner sc=new Scanner(System.in);
		String s=sc.next();
		Set<String> a=new HashSet<>();
		System.out.println(s);
		for(int i=1;i<s.length();i++) {
			fun(i,a,s);
		}		
		System.out.println(a.size()+1);
	}
	public static void fun(int n,Set<String> a,String s) {
		for (int i = 0; i < s.length(); i++) {
			if(i+n<=s.length()) {
				System.out.println(s.substring(i,i+n));
				a.add(s.substring(i,i+n));
			}
			else
				break;
		}		
	}

}
  • 数列求值
    本题总分:10 分
    【问题描述】
    给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求 第 20190324 项的最后 4 位数字。
    【答案提交】
    这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个 4 位整数(提示:答案的千位不为 0),在提交答案时只填写这个整数,填写 多余的内容将无法得分。
    答案:4659
public class demo03 {

	public static void main(String[] args) {
		// 数列求值		
		long[] a=new long[20190324];
		a[0]=1;
		a[1]=1;
		a[2]=1;		
		for(int i=3;i<a.length;i++) {
			if(a[i-1]>9999) {
				a[i-1]=a[i-1]%10000;
			}
			a[i]=a[i-1]+a[i-2]+a[i-3];
		}
		System.out.println(a[20190323]);
	}
}
  • 数的分解
    本题总分:10 分
    【问题描述】
    把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包 含数字 2 和 4,一共有多少种不同的分解方法? 注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和 1001+1000+18 被视为同一种。
    【答案提交】
    这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
    答案:40785

public class demo04 {

	public static void main(String[] args) {
		//数的分解	
		//ABC有六种排列方式,故最后要除以6,来去掉重复的方法		
		int sum=0;
		for(int i=1;i<2019;i++) {
			for(int j=1;j<2019;j++) {
				int k=2019-i-j;
				if(k>0&&i!=j&&j!=k&&i!=k) {										
					if(
						(!(i+"").contains("4")&&!(i+"").contains("2"))
						&&(!(j+"").contains("4")&&!(j+"").contains("2"))
						&&(!(k+"").contains("4")&&!(k+"").contains("2"))
					) 
						sum++;														
					}				
			}
		}
		System.out.println(sum/6);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值