轉載:JAVA企業面試題精選 Java基礎 41-50

假裝鎮定發表於2018-09-30

轉載:https://blog.csdn.net/qq_38131668/article/details/75095425

1.41.查詢有哪幾種方法:試寫其中一種方法的小例子

參考答案:

  有順序查詢,二分查詢,分塊查詢,二叉排序樹查詢等。
  下面的sequelSearch方法是順序查詢的案例(順序查詢適合與儲存結構為順序儲存或連結儲存的線性表)。

public int sequelSearch(String[] s, String key, int n) {
    int i;
    i = 0;
    while(i < n && s[i] != key){
        i++;
        if (s[i] == key) {
            return i;
        }
    }
    return -1;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

1.42.寫程式碼判斷兩個數字(x,y)的大小,並返回大數能否被小數整除

參考答案:

public class Q042 {

    public static void main(String[] args) {
        boolean b = judge(10,21);
        System.out.println(b);
    }

    public static boolean judge(int x, int y) {
        return (x < y ? y % x : x % y) == 0;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

1.43.將一個整型十進位制數轉化為二進位制數(不能使用java的類庫)

參考答案:

public class Q043 {

    public static void main(String[] args) {
        String hex = hexConvert(7);
        System.out.println(hex);
    }

    public static String hexConvert(int d) {
        String s = "";
        do {
            int f = d % 2;
            if (f == 1) {
                s = "1" + s;
            } else if (f == 0) {
                s = "0" + s;
            }
            d /= 2;
        } while (d != 0);
        return s;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

1.44.編一個函式,1000以內,可以被5整除,可以被7整除,但不被5和7同時整除,輸出符合結果的所有數

參考答案:

public class Q044 {

    public static void main(String[] args) {
        divide();
    }

    public static void divide() {
        for (int i = 0; i < 1000; i++) {
            if (i % 5 == 0 && i % 7 ==0 || i % 5 != 0 && i % 7 == 0) {
                System.out.println(i);
            }
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

1.45.生成一個六位數的驗證碼,包括大寫字母、小寫字母和數字

參考答案:

import java.util.Arrays;

public class Q045 {

    public static void main(String[] args) {
        String[] letters = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
                'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
                'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 
                'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 
                'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5',
                '6', '7', '8', '9'};
        boolean[] flags = new boolean[letters.length];
        String[] chs = new String[6];
        for (int i = 0; i < chs.length; i++) {
            int index;
            do {
                 index = (int)(Math.random() * (letters.length));
            } while (flags[index]);
            chs[i] = letters[index];
            flags[index] = true;
        }
        String code = Arrays.toString(chs);
        System.out.println(code);
    }   
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

1.46.有這樣一類數字,它們順著看和倒著看是相同的數,例如:121,656,2332等,這樣的數字稱為迴文數字。編寫一個java程式,判斷從鍵盤接收的數字是否是迴文數字

參考答案:

import java.util.Scanner;

public class Q046 {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("請輸入數字:");
        long inputValueLong = scan.nextLong();
        long temp = inputValueLong;
        long reverseLong = 0L;
        while (inputValueLong != 0) {
            reverseLong = reverserLong * 10 + inputValueLong % 10;
            inputValueLong =inputValueLong / 10;
        }
        if (reverseLong == temp) {
            System.out.println("是迴文數");
        } else {
            System.out.println("不是迴文數");
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

1.47.編寫程式輸出9*9乘法口訣

參考答案:

public class Q047 {

    public static void main(Stirng[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(i + "*" + j + "=" + (i * j) + "\t");
            }
            System.out.println("\n");
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

1.48.有五個人坐在一起,問第5個人多少歲?他說比第4個人大2歲。問第4個人多少歲?他說比第3個人大2歲。問第3個人多少歲?他說比第2個人大2歲。問第2個人多少歲?他說比第1個人大2歲。問最後一個人多少歲?他說是10歲。請問第5個人多大?(用遞迴方式實現)?

參考答案:

public class Q048 {

    public static int getAge(int a) {
        if (a == 1) {
            return 10;
        } else {
            return getAge(a-1) + 2;
        }
    }

    public static void main(String[] args) {
        int a = 5;
        int b = getAge(a);
        System.out.println(b);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

1.49.公雞每隻3元,母雞每隻5元,小雞3只1元,問100元買100只雞有幾種買法,請程式設計?

參考答案:

public class Q049 {

    public static void main(String[] args) {
        int count = 0;
        for (int i = 0; i <= 100 * 3; i += 3) { // 買小雞的只數只能是3的倍數
            for( int j = 0; j <= 100 / 3; j++) { // 買公雞的只數
                for (int k = 0; k <= 100 /5; k++) { // 買母雞的只數
                    if (i / 3 + j * 3 + k * 5 == 100 && i + j + k == 100) {
                        count++;
                        System.out.println("小雞" + i + "只,公雞" + j + "只,母雞" + k + "只");
                    }
                }
            }
        }
        System.out.println("共" + count + "種買法");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

1.50.程式設計:有1020個西瓜,第一天賣一半多兩個,以後每天賣剩下的一半多兩個,問幾天後能賣完

參考答案:

public class Q050 {

    public static void main(String[] args) {
        int i;
        int num = 1020;
        for (i = 1; ; i++) {
            num = num - (num / 2 + 2); // 當天賣後剩下多少個
            System.out.println("第" + i + "天后剩下" + num + "個");
            if (num == 0) {
                break;
            } 
        }
        System.out.println(i + "天買完");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

相關文章