Java蓝桥杯基础练习
Posted 努力努力再努力²
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java蓝桥杯基础练习相关的知识,希望对你有一定的参考价值。
目录
10、十进制转十六进制
import java.util.Scanner;
//法一:100分
public class 十进制转十六进制_10
public static void main(String[] args)
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
// System.out.println(Integer.toBinaryString(n)); //二进制
// System.out.println(Integer.toOctalString(n));//八进制
System.out.println(Integer.toHexString(n).toUpperCase()); //十六进制
11、十六进制转十进制
import java.math.BigInteger;
import java.util.Scanner;
//法1: 100分
public class 十六进制转十进制_11
public static void main(String[] args)
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
String Oct=new BigInteger(str, 16).toString(10);
System.out.println(Oct);
12、十六进制转八进制
import java.math.BigInteger;
import java.util.Scanner;
//法1: 100分
public class 十六进制转八进制_12
/* 给定n个十六进制正整数,输出它们对应的八进制数。 */
public static void main(String[] args)
Scanner sc=new Scanner(System.in);
//获取n
int n=sc.nextInt();
//定义数组来存放转换后的数
String []arr=new String[n];
//循环然后进行16进制转换为8进制
for(int i=0;i<n;i++)
//获取16进制数(注意next和nextInt区别)
String sixteen=sc.next();
//由于数字可能会越界,所有使用BigInteger的api
//new BigInteger(number, from).toString(to);
//number:要转换的数 from:原数的进制 to:要转换成的进制
String eight=new BigInteger(sixteen, 16).toString(8);
//将结果存入arr中
arr[i]=eight;
//遍历数组并打印
for(int i=0;i<n;i++)
System.out.println(arr[i]);
13、数列排序
import java.util.Scanner;
public class 数列排序_13
public static void main(String a[])
Scanner in = new Scanner(System.in);
int n=in.nextInt();
int f[] =new int[n];
for (int i = 0; i < n; i++)
f[i]=in.nextInt();
int b = 0;
for(int i =0;i<n-1;i++)
for(int j = i+1;j<n;j++)
if(f[i]>f[j])
b = f[i];
f[i] = f[j];
f[j] = b;
for(int i =0;i<n;i++)
System.out.printf("%d ",f[i]);
14、时间转换
import java.util.Scanner;
public class 时间转换_14
public static void main(String a[])
Scanner in = new Scanner(System.in);
int n=in.nextInt();
int H=n/3600;
int M=(n-H*3600)/60;
int S=(n-H*3600)-60*M;
System.out.print(H+":"+M+":"+S);
15、字符串对比
import java.util.Scanner;
public class 字符串比较_15
public static void main(String a[])
Scanner in = new Scanner(System.in);
String []arr=new String[2];
for (int i = 0; i < arr.length; i++)
arr[i]=in.next();
if(arr[0].length()!=arr[1].length())
System.out.print("1");
else
if(arr[0].equals(arr[1]) )
System.out.print("2");
else if (arr[0].toUpperCase().equals(arr[1].toUpperCase()))
System.out.print("3");
else
System.out.print("4");
16、分解质因数
import java.util.Scanner;
public class 分解质因数_16
//质数: 质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。
//0和1既不是质数也不是合数,最小的质数是2
public static void main(String[] args)
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();
for(;a<=b;a++)
int temp = a;
boolean flag = false;
System.out.print(temp+"=");
while(temp!=1)
for(int i=2;i<=temp;i++)
if(isPrime(i)&&temp%i==0)
if(flag)
System.out.print("*"+i);
else
flag = true;
System.out.print(i);
temp /= i;
break;
System.out.println();
public static boolean isPrime(int n)
if(n<2)return false;
if(n==2)return true;
if(n%2==0)return false;
for(int i=3;i*i<=n;i+=2)
if(n%i==0)
return false;
return true;
17、矩阵乘法
import java.util.Scanner;
public class 矩阵乘法_17
private static int N;//矩阵A的阶数
private static int[][] matrix; //矩阵A
public static void main(String[] args)
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
int M = sc.nextInt(); //要求的幂数
matrix = new int[N][N]; //原矩阵
//输入矩阵数据
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
matrix[i][j] = sc.nextInt();
//新矩阵
int[][] newMatrix = new int[N][N];
//幂数为0的情况
if (M == 0)
for (int i = 0; i < N; i++)
newMatrix[i][i] = 1;
//幂数不为0的情况
else
newMatrix = matrix;
for (int i = 0; i < M - 1; i++)
newMatrix = matriMultiplication(newMatrix);
//输出新矩阵
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
System.out.print(newMatrix[i][j] + " ");
System.out.println();
private static int[][] matriMultiplication(int[][] matrixParam)
int[][] newMatrix = new int[N][N];
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
for (int k = 0; k < N; k++)
newMatrix[i][j] += matrixParam[i][k] * matrix[k][j];
return newMatrix;
18、矩形面积交
import java.util.Scanner;
public class 矩形面积交_18
public static void main(String[] args)
Scanner sc = new Scanner(System.in);
//获得四个点的坐标
double x1 = sc.nextDouble(),y1=sc.nextDouble(),x2=sc.nextDouble(),y2 = sc.nextDouble();
double x3 = sc.nextDouble(),y3=sc.nextDouble(),x4=sc.nextDouble(),y4 = sc.nextDouble();
//关闭Scanner方法
sc.close();
//找出矩形一的最大最小值x,最大最小y
double maxx = Math.max(x1,x2);
double minx = Math.min(x1, x2);
double maxy = Math.max(y1, y2);
double miny =Math.min(y1, y2);
//找出矩形二的最大最小值x,最大最小y
double bigx = Math.max(x3,x4);
double smax = Math.min(x3, x4);
double bigy = Math.max(y3, y4);
double smay =Math.min(y3, y4);
//判断是否相离或者相切
if(smax>=maxx||minx>=bigx ||smay>=maxy||miny>=bigy)
System.out.println("0.00");
else
//找出相交的矩形的两个点,点1(xx,yy) 点2(x,y)
double xx = Math.max(minx, smax),yy=Math.max(miny, smay);
double x = Math.min(maxx, bigx),y=Math.min(maxy, bigy);
System.out.println(String.format("%.2f", (Math.abs(x-xx)*Math.abs(y-yy))));
19、完美的代价
package a;
import java.util.Scanner;
public class 完美的代价_19
public static void main(String[] args)
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String str = sc.next();
//将输入字符串转换为char数组
char[] charArr = str.toCharArray();
//求出现的次数为奇数的字母个数
int[] num = new int[26];
//记录每个字母出现的个数
for(int i = 0; i < n; i++)
num[charArr[i] - 'a']++;
//出现次数为奇数的字母个数
int count = 0;
for(int i = 0; i < 26; i++)
if(num[i] != 0)
if(num[i] % 2 != 0)
count++;
//若个数大于等于2个,则直接返回Impossible
if(count >&以上是关于Java蓝桥杯基础练习的主要内容,如果未能解决你的问题,请参考以下文章