顯示具有 TQC plus JAVA 6 第五類 標籤的文章。 顯示所有文章
顯示具有 TQC plus JAVA 6 第五類 標籤的文章。 顯示所有文章

510 二分搜尋法

import java.util.Scanner;
public class JPA510 {
    public static Scanner keyboard = new Scanner(System.in);

    public static void main(String[] argv) {
        search();
        search();
    }

    public static void search() {
        int[] data = {5, 9, 13, 15, 17, 19, 25, 30, 45}; // 已排序資料

        System.out.print("請輸入要找尋的資料:");

        int target = keyboard.nextInt();

        int high=data.length-1;
        int low=0;
        int mid=(high+low)/2;;
        int times=0;

        while(low<=high){

        times++;
        mid=(high+low)/2;

        System.out.println("尋找區間"+low+"("+data[low]+").."+high+"("+data[high]+"), 中間 : "+data[mid]);

        if(target==data[mid]){
        break;
        }
        else if(target<data[mid]){
        high=mid-1;
        }
        else{
        low=mid+1;
        }
        }

        System.out.println("經過"+times+"次的尋找");

        if(target==data[mid]){
       System.out.println("您要找的資料在陣列中的第"+mid+"位置");
        }
        else{
        System.out.println(target+"不在陣列中");
        }

    }
}

509 選擇排序法

public class JPA509 {
    public static void main(String[] argv) {
        int[] data = {1, 3, 2, 5, 4, 6};

        sort(data);
    }

    public static void sort(int data[]){
    int min,tmp;
    for(int i=0;i<data.length-1;i++){
    min=i;
    for(int j=i;j<data.length;j++){
    if(data[j]<data[min]){
    min=j;
    }
    }
    tmp=data[i];
    data[i]=data[min];
    data[min]=tmp;

    for(int k: data){
System.out.print(" "+k);
}
System.out.println();
    }

    }
}

508 泡泡排序法

public class JPA508 {
    public static void main(String[] argv) {
        int[] data = {2, 4, 3, 5, 7, 6, 9, 1};  // 為排序的資料
int tmp;
        for(int i=0;i<data.length-1;i++){

for(int j=0; j<data.length-1-i;j++){
if(data[j]>data[j+1]){
tmp=data[j];
data[j]=data[j+1];
data[j+1]=tmp;
}
}

for(int k: data){
System.out.print(" "+k);
}
System.out.println();
        }
    }
}

507 停車費用計算

public class JPA507 {
    public static void main(String[] argv) {
        int hours = 0;   //停車時數

        hours = 2;
        park(hours);
        System.out.println("--------------------");

        hours = 3;
        park(hours);
        System.out.println("--------------------");

        hours = 5;
        park(hours);
        System.out.println("--------------------");

        hours = 8;
        park(hours);
    }

    public static void park(int hours) {
        int[] hourTable = {0, 2, 4, 6};   // 時段
        int[] feeTable = {30, 50, 80, 100};   // 時段費率
        int fee = 0;   //停車費用


        for(int i=(hourTable.length-1) ; i>=0 ; i--){

        if(hours>hourTable[i]){

        fee+=(hours-hourTable[i])*feeTable[i];

        for(int j=i ; j>0 ; j--){

        fee+=(hourTable[j]-hourTable[j-1])*feeTable[j-1];
        }

        break;
        }

        }
System.out.println("停車時數:" + hours + "小時");
        System.out.println("應繳費用:" + fee + "元整");
    }
}

506 三維陣列元素之和

public class JPA506 {
    public static void main(String[] argv) {
       int sum =0;
       int A[][][] = {{{1,2,3},{4,5,6}},
                       {{7,8,9},{10,11,12}},
                       {{13,14,15},{16,17,18}},
                       {{19,20,21},{22,23,24}}};

       for(int i=0;i<4;i++){
        for(int j=0;j<2;j++){
        for(int k=0;k<3;k++){
        sum+=A[i][j][k];
        }
        }
       }

       System.out.printf("sum = %d\n", sum);
    }
}

505 反轉陣列

public class JPA505 {
    public static void main(String[] argv) {
        String[] data = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J"};
        System.out.print("反轉陣列資料之前: ");

        for(int i=0;i<data.length;i++){
        System.out.print(" "+data[i]);
        }
System.out.println();
        reverse(data);

        System.out.print("反轉陣列資料之後: ");

        for(int i=0;i<data.length;i++){
        System.out.print(" "+data[i]);
        }
        System.out.println();
    }

    public static void reverse(String a[]) {
    String tmp;
    int i=0;
    int j=(a.length-1);
   
        while(i<(a.length/2)){
        tmp=a[i];
        a[i]=a[j];
        a[j]=tmp;
        i++;
        j--;
        }
    }
}

504 費氏數

import java.util.Scanner;
public class JPA504 {
    public static Scanner keyboard = new Scanner(System.in);

public static void main(String[] argv) {

int []f= new int[10];

f[0]=keyboard.nextInt();
f[1]=keyboard.nextInt();

for(int i=2;i<f.length;i++){
f[i]=f[i-1]+f[i-2];
System.out.println(f[i]);
}

    }
}

503 矩陣之和

public class JPA503 {
    final static int ROW = 2;
    final static int COL = 3;

    public static void main(String args[]) {
        int A[][] = {{1,2,3}, {4,5,6}};
        int B[][] = {{7,8,9}, {10,11,12}};
        int C[][] = new int[ROW][COL];

        System.out.printf("陣列A的內容為(3x3):\n");
        show(A);

        System.out.printf("\n陣列B的內容為(3x3):\n");
        show(B);

        add(A, B, C);

        System.out.printf("\n陣列A+B=C,陣列C的內容為(3x3):\n");
        show(C);
    }

    public static void add(int a[][],int b[][],int c[][]) {
        for(int i=0;i<ROW;i++){
        for(int j=0;j<COL;j++){
        c[i][j]=a[i][j]+b[i][j];
        }
        }
    }

    public static void show(int x[][]) {
        for(int i=0;i<ROW;i++){
        for(int j=0;j<COL;j++){
        System.out.printf("%02d ",x[i][j]);
        }
        System.out.println();
        }
    }
}

502 浮點數計算

import java.util.Scanner;
public class JPA502 {
    public static Scanner keyboard = new Scanner(System.in);

    public static void main(String args[]) {
        int n;
        float sum=0;
        System.out.print("請輸入學生人數:");
        n= keyboard.nextInt();
        float v[]=new float[n];
        for(int i=0;i<n;i++){
        System.out.print("請"+(i+1)+"個學生成績 : ");
        v[i]=keyboard.nextFloat();
        sum+=v[i];
        }
        System.out.println("人數:"+n);
        System.out.println("總分:"+sum);
        System.out.println("平均:"+sum/(float)n);
    }
}

501 陣列計算

import java.util.Scanner;
public class JPA501{


    public static void main(String args[]) {
int sum=0;
int n=0;
int []vector = new int[10];
Scanner keyboard = new Scanner(System.in);
System.out.println("請輸入10個整數:");
for(int i=0;i<10;i++){
System.out.print("第"+(i+1)+"個整數:");
vector[i]=keyboard.nextInt();
if(vector[i]>60){
sum+=vector[i];
n++;
}
}
        System.out.println("陣列中大於60的有" + n + "個\n總合為" + sum + "\n平均值為" + (sum / (double)n));
    }
}