【Java学习日记】编程题整理-7.31 冒泡排序 -判断质数-十进制转十六进制-判断回文数 -获得反转数
最近在学Java,教材是机械工业出版社的《Java语言程序设计》,辅佐廖雪峰的博客。
把遇到的编程题记录在txt中不太方便写备注,改为在日记里记录还可以总结。
冒泡排序
public static void main(String[] args) {
int ns[]= {28, 12, 89, 73, 65, 18, 96, 50, 8, 36};
System.out.println("原始数列:"+ Arrays.toString(ns));
for(int i =0;i<ns.length-1;i++) {
for(int j=0;j<ns.length-1;j++) {
if(ns[j]>ns[j+1]) {
int tem = ns[j];
ns[j] = ns[j+1];
ns[j+1] =tem;
}
}
}
System.out.println("排序以后:"+ Arrays.toString(ns));
}
冒泡排序的模板相对比较固定,用sort方法也可以输出从小到大排列的数列。
获取数组长度使用方法 ns.length 其中ns是数组名
判断质数
public static void main(String[] args) {
System.out.println("Please Enter a number");
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int count = 0;
int number =2;
final int line = 10;//控制每输出十个数就换行
while(count<n) {
if(Isprime(number)) {
count++;
if(count%line == 0) {
System.out.println(number);
}
else {
System.out.print(number + " ");
}
}
number++;
}
}
//判断质数的方法
public static boolean Isprime(int i) {
for(int divisor = 2;divisor <=i/2; divisor++) {
if(i%divisor == 0) {
return false;
}
}
return true;
}
}
十进制转十六进制
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int decimal = input.nextInt();
System.out.println("The value of the decimal number is " + decimaltoHex(decimal));
}
public static String decimaltoHex(int decimal) {
String hex ="";
while(decimal != 0) {
int hexValue = decimal % 16;
hex = toHexChar(hexValue)+ hex; //转化成字符
decimal=decimal/16;
}
return hex;
}
public static char toHexChar(int hexValue) {
if(hexValue<=9 && hexValue>=0)
return (char)(hexValue + '0');
else
return (char)(hexValue - 10 + 'A');
}
}
判断是否是回文数
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
if(getNumbers(n)) {
System.out.println("yes");
}
else
System.out.println("no");
}
public static boolean getNumbers(int n) {
String str = String.valueOf(n); //数值转化为字符串
int length = str.length(); //获得字符串长度
int L=length-1,R=0; //L代表字符串最左边,length-1 R代表是字符的最左边,从0开始
if(length == 1)
return true;
while (L > R) {
if (str.charAt(L) != str.charAt(R)) { //不管奇数偶数都要最高位和最低位比起来 获得字符串里第N位字符的方法 str.charAt(N)
return false;
}
L--;
R++;
}
return true;
}
}
获得反转数
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
while (n>0){
System.out.print(n%10); // 取余
n /= 10; //相当于每次砍掉最低位
}
}
好的,今天就整理这些。