蓝桥杯JAVAB组2015初赛

蓝桥杯JAVAB组2015初赛

A三角形面积

原版:三角形面积
如图1所示。图中的所有小方格面积都是1。
那么,图中的三角形面积应该是多少呢?
请填写三角形的面积。不要填写任何多余内容或说明性文字。
思路:正方形面积减去三个小三角形的面积
在这里插入图片描述

这个是改编版的,链接:2018JAVA组决赛A题
思路:设周长的一半为p,三角形面积s=sqrt(p*(p-a)*(p-b)*(p-c),abc用勾股定理求
答案:8.795

public class A三角形面积 {
	public static void main(String[] args) {
		double a = Math.sqrt(0.6f*0.6f+4.1f*4.1f);
		double b = Math.sqrt(2.8f*2.8f+4.7f*4.7f);
		double c = Math.sqrt(1.3f*1.3f+4.1f*4.1f);
		double p = (a+b+c)/2;
		double s = Math.sqrt(p*(p-a)*(p-b)*(p-c));
		System.out.println(String.format("%.3f",s));
	}
}

B立方变自身

思路:因为是填空题,所以写一个死循环,如果满足条件就输出,然后查输出了多少个就行了
答案:6

public class B立方变自身 {
	public static void main(String[] args) {
		int ans = 0;
		for(long i=1;;i++) {
			long t = i*i*i;
			int sum = 0;
			while(t!=0) {
				sum+=t%10;
				t/=10;
			}
			if(sum==i) {
				System.out.println(i);
			}
		}
	}
}

C三羊献瑞

答案:1085
思路:新进行0-9的全排列,然后如果是相同的汉字,就用相同的数字代替,不同的汉字用不同的数字,需要注意的是a[0],a[4]不能为0

在这里插入图片描述

public class C三羊献瑞 {
	public static int a[] = {0,1,2,3,4,5,6,7,8,9};
	public static int ans = 0;
	public static void qpl(int k) {
		if(k>=a.length) {
			String s1=""+a[0]+a[1]+a[2]+a[3];
			String s2=""+a[4]+a[5]+a[6]+a[1];
			String s3=""+a[4]+a[5]+a[2]+a[1]+a[7];
			if(a[0]!=0&&a[4]!=0&&Integer.parseInt(s1)+Integer.parseInt(s2)==Integer.parseInt(s3)) {
				System.out.println(s2);
			}
		}else {
			for(int i=k;i<a.length;i++) {
				int t=a[i];a[i]=a[k];a[k]=t;
				qpl(k+1);
				t=a[i];a[i]=a[k];a[k]=t;
			}
		}
	}
	public static void main(String[] args) {
		qpl(0);
		//System.out.println(1085);
	}
}

G加法变乘法

答案:16
思路:加法变乘法,首先先减掉两个数,再加上这两个数的乘积就可以实现加法变乘法

public class G加法变乘法 {
	public static void main(String[] args) {
		int s = 0;
		for(int i=1;i<=49;i++) {
			s+=i;
		}
		for(int i=1;i<=49;i++) {
			int t = s;
			t=t-i-(i+1);
			t+=i*(i+1);
			int x = t;
			for(int j=i+1;j<=49;j++) {
				x=t;
				x=x-j-(j+1);
				x+=j*(j+1);
				if(x==2015)System.out.println(i);
			}
		}
		//System.out.println(16);
	}
}

H牌型种数

答案:3598180
思路:DFS比较简单的一种,两个变量cha与k分别代表的距离选够13张还差几张牌,k则是1-13,代表牌的配型

public class H牌型种数 {
	public static int ans = 0;
	public static void dfs(int cha,int k) {
		if(cha<0||k>14)return;
		if(cha==0) {
			ans++;
			return;
		}else {
			for(int i=0;i<5;i++) {
				dfs(cha-i,k+1);
			}
		}
	}
	public static void main(String[] args) {
		dfs(13,1);
		System.out.println(ans);
	}
}

I饮料换购

思路:

import java.util.Scanner;
public class I饮料换购 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()) {
			int n = sc.nextInt();
			int flag1=n/3;
			int flag2=n%3;
			int ans = n;//总共的
			while(flag1+flag2>=3) {
				int t = flag1;
				flag1=(flag1+flag2)/3;
				flag2=(t+flag2)%3;
				ans+=flag1;
			}
			System.out.println(ans+n/3);
		}
	}
}
2022蓝桥杯javab真题解析如下: 2022年蓝桥杯javab真题从基础到进阶,难度适中,测试了参赛选手在Java编程语言方面的知识和能力。题目涵盖了数、字符串处理、面向对象编程等多个知识点,考察了学生的编程思维和解决问题的能力。 首先,题目要求实现一个学生成绩管理系统,包括学生信息录入、成绩查询、成绩统计等功能。通过类的设计和实例化,可以实现学生对象的创建和信息存储。使用数或集合来存储多个学生对象,便于后续的查询和统计操作。 其次,题目要求实现一个简单的买卖股票的交易系统。需要设计一个股票类,其中包括股票名称、日期、买入价、卖出价等属性,然后通过输入的交易数据进行统计,计算利润最大化的买入和卖出操作。可以使用循环和条件语句来实现逻辑判断和计算运算。 最后,题目要求实现一个小型的计算器程序。可以通过实现不同的方法来实现加、减、乘、除等基本运算。可以使用条件语句或循环语句来判断用户输入的操作,并进行相应的计算操作。 总结来说,2022蓝桥杯javab真题考察了参赛选手的编程能力和应用基础知识的能力,要求实现多个功能,并考察了类的设计和对象的使用。通过解析这些真题,可以提高对Java编程语言的理解和应用能力,对于参加类似的编程竞赛有一定的帮助作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值