本文编写于 227 天前,最后修改于 227 天前,其中某些信息可能已经过时。

【程序26】Ex26.java(跳过了,好没意思的题啊)
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。
1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。

使用字符数组搞定

【程序27】 SuShu.java
题目:求100之内的素数

参考见【程序2】 FindPrimeNumber.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循环控制输入二维数组,再将ai累加后输出。

【程序30】 ArraySort.java
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

  1. 程序分析:使用二分法

    package 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);
    }

    }