蓝桥杯必会基础题目

题目1:给定三条边a\b\c,请你判断一下能不能组成一一个三角形

public static void main(String[] args) {

		//给定三条边a\b\c,请你判断一下能不能组成一一个三角形
		//普通
		int a = 4, b = 5, c = 6;

		int max = a > b && a > c ? a : (b > c ? b : c);
		int min = a < b && a < c ? a : (b < c ? b : c);
		int mid = a + b + c - max - min;
		String isOk = max < min + mid ? "可以" : "不可以";
		System.out.println(isOk);
		
		//给定三条边a\b\c,请你判断一下能不能组成一一个三角形
		//加条件:1 <= a\b\c <= 10^100

		BigInteger a1 = new BigInteger("4");
		BigInteger b1 = new BigInteger("5");
		BigInteger c1 = new BigInteger("10");
		// 1.找出max、min、 mid
		
		//max1
		//a > b && a > c ? a : (b > c ? b : c)
		BigInteger max1 = a1.compareTo(b1)==1&&a1.compareTo(c1)==1?a1:(b1.compareTo(c1)==1?b1:c1);
		//min1
		//a < b && a < c ? a : (b < c ? b : c);
		BigInteger min1 = a1.compareTo(b1)==-1&&a1.compareTo(c1)==-1?a1:(b1.compareTo(c1)==-1?b1:c1);
		//mid1
		//a + b + c - max - min
		BigInteger mid1 = a1.add(b1).add(c1).subtract(min1).subtract(max1);
		
		//max < min + mid ? "可以" : "不可以";
		String isOk1 = max1.compareTo(min1.add(mid1))==-1 ?"可以":"不可以";
		System.out.println(isOk1);
		
		
		
	}

题目2:根据身份证号码,计算年龄。

public static void main(String[] args) {

		String idCardNo = "610431200109054229";

		//获取省份证号码中的出生年份(字符串)
		String yearStr = idCardNo.substring(6, 10);

		//将出生年份转化成整形
		int year = Integer.parseInt(yearStr);

		//获取今年的年份(整形)
		int currentYear = LocalDate.now().getYear();

		//计算年龄
		int age = 2024 - year;

		//输出年龄
		System.out.println(age);
	}

题目3: 字符串变形:把这个字符串中由空格隔开的单词反序,同时反转每个字符的大小写。

例如: "Hello World"变形后就变成了"WORLD hELLO"
例如: "This is a sample"变形后就变成了"SAMPLE A IS tHIS"

public static void main(String[] args) {

		String s = "Hello World";
		//第一步:将原字符串中的字母大小写反转,例如:hELLO wORLD
		String str = "";
		for (int i = 0; i < s.length(); i++) {
			//获取当前字符
			char c = s.charAt(i);
			// 写法一
			if(c !=' ') {
				if(c>='a'&&c<='z') {
					c = (char) (c - 32);
				}else {
					c = (char) (c + 32);
				}
			}
			// 写法二
//			if (c != ' ') {
//				c = (char) (c >= 'A' && c <= 'Z' ? (c + 32) : (c - 32));
//			}
			str = str + c;

		}
		//第二步:单词反转
		String word="";//存单词
		String ret ="";//放结果
		for(int i = 0;i

题目4:输出如下效果:

/*
     * 1 2 3 
     * 6 5 4 
     * 7 8 9 
     * 12 11 10
     * 13 14 15
     */

public static void main(String[] args) {
		//i:数字;counter:几次,次数;line:行号
		for (int i = 1, counter = 1, line = 1; i <= 15; counter++) {
			System.out.print(i+" ");//print 不换行
			if (counter % 3 == 0) {
				// 换行
				System.out.println(); //println 换行
				i = i + 3;
				line++; //行号递增
			} else {
				// 数字递增or递减
				if ((line & 1) == 1) {
					i++;  //奇数行的数组递增
				} else {
					i--;  //偶数行的数字递增
				}
			}

		}

	}

你可能感兴趣的:(java,算法,数据结构)