轉載:JAVA企業面試題精選 Java基礎 31-40
轉載:https://blog.csdn.net/qq_38131668/article/details/75049972
1.31.寫Java程式碼,列印如下楊輝三角:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
參考答案:
public class Q031 {
public static void main(String[] args) {
int n = 6;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) {
System.out.println(" ");
}
// 列印空格後面的字元,從第1列開始往後列印
for (int j = 1; j <= i; j++) {
System.out.print(num(i, j) + " ");
}
System.out.println();
}
}
public static int num(int x, int y) { // 第x行,第y行
if (y == 1 || y == x) {
return 1;
}
int c = num(x - 1, y - 1) + num(x - 1, y);
return c;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
1.32.使用Java完成快速排序演算法
參考答案:
public class QuickSort {
// 排序方法,接受一個int[]引數,將會呼叫快速排序方法進行排序
public static void sort(int[] number) {
quickSort(number, 0, number.length - 1);
}
// 快速排序方法
private static void quickSort(int[] number, int left, int right) {
if (left < right) {
int s = number[left];
int i = left;
int j = right + 1;
while (true) {
// 向右找大於s的數的索引
while (i + 1 < number.length && number[++i] < s);
// 向左找小於s的數的索引
while (j - 1 > -1 && number[--j] > s);
// 如果i>=j,退出迴圈
if (i >= j) {
break;
}
// 否則交換索引i和j的元素
swap(number, i, j);
}
number[left] = number[j];
number[j] = s;
// 對左邊進行遞迴
quickSort(number, left, j - 1);
quickSort(number, j + 1, right);
}
}
// 交換陣列number中的索引為i、j的元素
private static void swap (int[] number, int i, int j){
int t;
t = number[i];
number[i] = number[j];
number[j] = t;
}
public static void main(String[] args) {
int[] num = { 34, 1, 23, 345, 12, 546, 131, 54, 78, 6543, 321, 85, 1234, 7, 76, 234};
sort(num);
for (int i = 0; i < num.length; i++) {
System.out.println(num[i]);
}
}
}
- 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
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
1.33.設有n個人圍成一圈,從第1個人開始報數,數到第m個人出列,然後從出列的下一個人開始報數,數到第m個人又出列,…,如此反覆到所有人全部出列位置。設n個人的編號分別為1,2,…,n,列印出出列順序
參考答案:
public class Q033 {
private static boolean same(int[] p, int l, int n) {
for (int i = 0; i < l; i++) {
if (p[i] == n) {
return true;
}
}
return false;
}
public static void play(int playerNum, int step) {
int[] p = new int[playerNum];
int counter = 1;
while (true) {
if (counter > playerNum * step) {
break;
}
for (int i = 1; i < playerNum + 1; i++) {
while (true) {
if (same(p, playerNum, i) == false) {
break;
} else {
i = i + 1;
}
}
if (i > playerNum) {
break;
}
if (counter % step == 0) {
System.out.print(i + " ");
p[counter / step - 1] = i;
}
counter += 1;
}
}
System.out.println();
}
public static void main(String[] args) {
play(10, 7);
}
}
- 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
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
1.34.寫一段小程式檢查數字是否為質數
參考答案:
public class Q034 {
public boolean prime(int n) {
if (n <= 0) {
System.exit(0);
}
for (int i = 2; i <= n; i++) {
for (int j = 2; j <= Math.sqrt(i); j++) {
if ((n % j == 0) && (j != n)) {
return false;
}
}
}
return true;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
1.35.1到100自然數,放入到a[99]這個陣列中,寫一個函式找出沒有被放進陣列的那個數字
參考答案:
public class Q035 {
public static void main(String[] args) {
// 模擬a[99]陣列
int[] b = new int[99];
for (int i = 0; i < 99; i++) {
b[i] = i + 1;
}
int[] a = new int[100];
for (int t : b) {
a[t - 1] = t;
}
for (int t = 0; t < a.length; t++) {
if (a[t] == 0) {
System.out.println(t + 1);
}
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
1.36.找出101到200自然數中的質數,for迴圈越少越好
參考答案:
public class Q036 {
public static void main(String[] args) {
for (int i = 101; i <= 200; i++) {
boolean b = true;
for (int n = 2; n < i; n++) {
if (i % n == 0) {
b = false;
break;
}
}
if (b) {
System.out.println(i);
}
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
1.37.用陣列實現一個棧(Stack),至少有入棧方法push和出棧方法pop
參考答案:
import java.util.Arrays;
class Stack {
private Object[] data; // 棧的內容
private int size = 0; // 棧內的元素個數
public Stack() {
data = new Object[0];
}
// 判斷棧是否滿
public boolean isFull() {
// 當陣列長度與棧內元素個數相同或者陣列長度為0並且元素個數為0時
return data.length == size || (data.length == 0 && size == 0);
}
// 判斷棧是否empty
public boolean isEmpty() {
return size == 0;
}
// 陣列擴容10個
public void increData() {
data = Arrays.copyOf(data, data.length + 10);
}
// 入棧操作
public void push(Object obj) {
if (isFull()){
increData();
}
size++;
data[size - 1] = obj;
}
// 出棧操作
public Object pop() {
Object o = data[size - 1];
data[size - 1] = null;
size--;
return o;
}
}
public class Q037 {
public static void main(String[] args) {
Stack stack = new Stack();
stack.push(1);
stack.push("123");
Object o = stack.pop();
System.out.println(o);
o = stack.pop();
System.out.println(o);
}
}
- 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
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
1.38.a、b、c為3個整型變數,在不引入第4個變數的前提下寫一個演算法實現a=b、b=c、c=a?
參考答案:
public class Q038 {
public static void main(String[] args) {
int a = 1;
int b = 2;
int c = 3;
a = b - a;
b = b - a;
a = a + b;
b = c - b;
c = c - b;
b = c + b;
System.out.println("a:" + a + "b:" + b + "c:" + c);
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
1.39.Java程式設計寫出1000-2000可以被3整除的數
參考答案:
public class Q039 {
public static void main(String[] args) {
for (int i = 1000; i <= 2000; i++) {
if (i % 3 == 0) {
System.out.println(i);
}
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
1.40.有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第四個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?
參考答案:
public class Q040 {
public static void main(String[] args) {
System.out.println("第1個月的兔子對數:1");
System.out.println("第2個月的兔子對數:1");
int f1 = 1, f2 = 1, f, M =24;
for (int i = 3; i <= M; i++) {
f = f2;
f2 = f1 + f2;
f1 = f;
System.out.println("第" + i + "個月的兔子對數:" + f2);
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
相關文章
- 轉載:JAVA企業面試題精選 Java基礎 41-50Java面試題
- 轉載:JAVA企業面試題精選 Java基礎 1-10Java面試題
- 轉載:JAVA企業面試題精選 Java基礎 11-20Java面試題
- 轉載:JAVA企業面試題精選 Java基礎 21-30Java面試題
- 轉載:JAVA企業面試題精選 OOP 1-10Java面試題OOP
- 轉載:JAVA企業面試題精選 OOP 11-20Java面試題OOP
- 轉載:JAVA企業面試題精選 OOP 21-24Java面試題OOP
- 轉載:JAVA企業面試題精選 資料庫1-10Java面試題資料庫
- 轉載: JAVA企業面試題精選 資料庫11-20Java面試題資料庫
- JAVA企業面試題精選 MyBatis 1-4Java面試題MyBatis
- Java併發面試題精選Java面試題
- java基礎面試題Java面試題
- 最新精選Java面試題,附答案!Java面試題
- java面試題--基礎上Java面試題
- Java基礎面試題下Java面試題
- Java面試題-基礎篇四Java面試題
- Java面試題-基礎篇五Java面試題
- Java面試題-基礎篇一Java面試題
- Java面試題-基礎篇二Java面試題
- JavaSE-Java基礎面試題Java面試題
- 面試題之:java基礎1面試題Java
- Java基礎知識面試題Java面試題
- Java面試題基礎篇(一)Java面試題
- Java面試題基礎篇(二)Java面試題
- Java面試題基礎篇(三)Java面試題
- 【Java面試】Java面試題基礎系列212道(上)Java面試題
- Java面試題總結之Java基礎(三)Java面試題
- Java面試系列:Java面試題基礎系列228道(上)Java面試題
- 面試題收集——Java基礎部分(一)面試題Java
- Java面試之基礎題---物件ObjectJava面試物件Object
- 一道java面試基礎題Java面試
- java基礎:面試題【不斷更新】Java面試題
- Java基礎慨念面試題1Java面試題
- 2021精選 Java面試題附答案(一)Java面試題
- 精選30道Java多執行緒面試題Java執行緒面試題
- Java面試之Java基礎問題答案口述整理Java面試
- Java基礎面試題整理-50題(附答案)Java面試題
- Python企業面試題2 —— 基礎篇Python面試題