50道经典的JAVA编程题(26-30),这么晚了,早点睡了要,明早8点考java祝我好运吧!!!晚安~
【程序26】Ex26.java(跳过了,好没意思的题啊)
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。
1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。
使用字符数组搞定
【程序27】 SuShu.java
题目:求100之内的素数
参考见【程序2】 FindPrimeNumber.java
java/**
* 判断n是不是质数
* @param n
* @return
*/
public static boolean isPrimeNumber(int n){
if(n == 2) return true;
for(int i=2; i<=n/2; i++){
if(n % i == 0) return false;
}
return true;
}
【程序28】 TestSort.java
题目:对10个数进行排序
1.程序分析:直接使用java的Collections.sort()方法。。。
参见【程序15】Sort.java
【程序29】 TestAdd3.java
题目:求一个3*3矩阵对角线元素之和
1.程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。
没啥意思的说。。。
【程序30】 ArraySort.java
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
1. 程序分析:使用二分法
javapackage test50;
/**
* @author VellBibi
*【程序30】 ArraySort.java
*题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
*1. 程序分析:使用二分法
*/
public class ArraySort {
/**
* 往a里插入n(二分法)
* @param a
* @param n
*/
public static int[] addNumber(int[] a, int n){
int i=0, j=a.length-1;
int cup = 0;
if(a[j]<n) cup = j+1;
else if(a[i]>n) cup = i;
else{
while(j-i>1){
cup = (i + j) /2;
if(n > a[cup]){//n大于中间数
i = cup;
}else if(n < a[cup]){
j = cup;
}else{
break;
}
}
cup = j;
}
//插入n
int[] newa = new int[a.length+1];
for(i=0,j=0; i<newa.length; i++){
if(i == cup){
newa[i] = n;
}else{
newa[i] = a[j];
j++;
}
}
return newa;
}
public static void printArray(int[] a){
for(int i=0; i<a.length; i++){
System.out.print(a[i]+" ");
}
}
public static void main(String[] args) {
int[] a = new int[]{2,3,5,6,7,9,12,16};//已经排好序的数组
a = addNumber(a, 10);
printArray(a);
}
}