蓝桥杯预赛——发现杯

java函数的进制转换问题

第一道
   将2019转换成二进制数(看到这道题我彻底懵逼了,知道有个函数可以转换,但突然想不起是啥了,最后直接选择用笔算,直接函数解决的问题,我竟然。。。哎,只能怪技术不到家啊

//十进制转换二进制
System.out.println(Integer.toBinaryString(2019));

  当然还有几种进制转换的函数,再补充一下吧🤭

二进制、八进制、十六进制转换为十进制

//二进制转十进制
System.out.println(Integer.valueOf("11111100011",2));
//八进制转十进制
System.out.println(Integer.valueOf("876",8));
//十六进制转十进制
System.out.println(Integer.valueOf("FFFF",16));

十进制转八进制、十六进制

//十进制转八进制
System.out.println(Integer.toOctalString(876));
//十进制转十六进制
System.out.println(Integer.toHexString(65535));

第二道
   1200000的所有约数,暴力破

	int count=0;
	for(int i=1;i<=Math.sqrt(1200000);i++){
		if((1200000/i)*i==1200000){
			count++;
		}
	}
	System.out.println(count*2);
}

第三道
   2019个节点的无向连通图,最少有几条边(~~表示一脸懵逼,完全不知道什么意思,不过后来听大佬说是这个意思,真的学到了

		2019节点无向图最少边,
		一个点做中心,
		其他2018点围绕在它旁边,
		每个点对应一条边,
		中心点没有,
		2019-1=2018

第四题
   1-2019内含9的数量,暴力破

public class Main{
public static void main(String[] args) {
		// TODO Auto-generated method stub
		int count=0;
		for(int i=0;i<=2019;i++){
				if(check(i)){
					count++;
				}
			}
			System.out.println(count);
		}
public static boolean check(int n){
		while(n>0){
			if(n%10==9)return true;
			n/=10;
		}
		return false;
	}
}

第五题
   求字符串中元辅音字母的数量,暴力破

import java.util.*;
public class Main{
	public static void main(String[]args) {
		Scanner scan=new Scanner(System.in);
		String str=scan.nextLine();
		int count=0;
		for(int i=0;i<str.length();i++) {
			char a=str.charAt(i);
			if(a=='a'||a=='e'||a=='i'||a=='o'||a=='u') {
				count++;
			}
		}
		System.out.println(count);
		System.out.println(str.length()-count);
	}
}

第六题
   有n个数,求其中任意两个数组成m的倍数的倍数对有多少个?(暴力破)

import java.util.*;
public class Main{
	public static void main(String[]args) {
		Scanner scan=new Scanner(System.in);
		int n=scan.nextInt();
		int m=scan.nextInt();
		int count=0;
		int[]number=new int[n];
		for(int i=0;i<n;i++) {
			number[i]=scan.nextInt();
		}
		for(int i=0;i<n;i++) {
			for(int j=n-1;j>i;j--) {
				if((number[i]+number[j])%m==0) {
					count++;
				}
			}
		}
		System.out.println(count);
	}
}

第七题
   找出1~n内各个位上没有重复数字的个数(暴力破)

import java.util.Scanner
public class Main{
	public static void main(String[]args) {
		Scanner scan=new Scanner(System.in);
		int count=0;
		int n=scan.nextInt();
		for(int i=1;i<=n;i++) {
			if(check(i))count++;
		}
		System.out.println(count);
	}
	public static boolean check(int a) {
		int[]array=new int[10];
		while(a>0) {
			array[a%10]++;
			a/=10;
		}
		for(int j=0;j<10;j++) {
			if(array[j]>1)return false;
		}
		return true;
	}
}

第八题
   梅花桩 :从(1,1)走到(m,n),最大移动距离为d,求最少移动次数(说实话这道题是真没看懂,不知道它到底啥意思,想了好久不会就放弃了

第九题
   花店运花 nm矩阵分成两部分n(m-x)和n*x(暴力求解)
(这种方法不一定对,只不过我试了几个答案是对的而已)

import java.util.*;
public class Main{
	public static void main(String[]args) {
		Scanner scan=new Scanner(System.in);
		int n=scan.nextInt();
		int m=scan.nextInt();
		int[][]a=new int[n][m];
		for(int i=0;i<n;i++) {
			for(int j=0;j<m;j++) {
				a[i][j]=scan.nextInt();
			}
		}
		int[]sum=new int[m];
		int s=0;
		//求出每列花的重量和
		for(int i=0;i<m;i++) {
			s=0;
			for(int j=0;j<n;j++) {
				s=s+a[j][i];
			}
			sum[i]=s;
		}
		//将第一列的花作为x(第一辆车的花)
		int x=sum[0];
		//同样的将最后一列的花作为y(第二辆车的花)
		int y=sum[m-1];
		int k,r;
		for(k=m-2;k>0;k--) {
			for(r=1;r<=k;r++) {
				//比较如果x<y,则让第二列放入第一辆车...
				if(x<y) {
					x=x+sum[r];
				}
				else {
					break;
				}
			}
			if(r<=k) {
			//如果x>y则说明第一辆车花的重量大于第二辆车
			//把倒数第二列花放入第二辆车...以此类推
				y=y+sum[k];
			}
			if(y>x&&r+1>k) {
				System.out.println(y-x);
				break;
			}
			if(r==k) {
				break;
			}
		}
		if(x>y) {
			System.out.println(x-y);
		}			
	}
}

  压轴大题(只能说太难了,连题都没看懂是啥意思,就不写了,反正我写不会

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值