Xu Hướng 11/2022 # Tổng Hợp Bài Tập Java Có Lời Giải / 2023 # Top 18 View | Ictu-hanoi.edu.vn

Bạn đang xem bài viết Tổng Hợp Bài Tập Java Có Lời Giải / 2023 được cập nhật mới nhất trên website Ictu-hanoi.edu.vn. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất.

Để dễ dàng tiếp cận và làm quen với ngôn ngữ lập trình Java. VNCoder sẽ tổng hợp các bài tập thực hành Java mẫu có lời giải chi tiết. Đây là tài liệu tham khảo hữu ích để các bạn luyện tập, thành thạo cú pháp và cấu trúc của ngôn ngữ lập trình Java.

Các mệnh đề if-else, switch-case.

Các vòng lặp for, while, do-while.

Các từ khóa break và continue trong java.

Các toán tử trong java.

Mảng (array) trong java.

File I/O trong java.

Xử lý ngoại lệ trong java.

Các bài tập Java đều có hướng dẫn giải chi tiết, code tham khảo. Các bạn nên tự làm trước, nếu chưa hoàn thành thì có thể tham khảo gõ lại theo code mẫu, như vậy trình độ của các bạn sẽ lên nhanh chóng

Bài tập Java có lời giải

Bài này cung cấp cho bạn danh sách các dạng bài tập khác nhau để bạn thực hành khi học java.

1. Bài tập java cơ bản

Trong phần này, bạn phải nắm được các kiến thức về:

Các mệnh đề if-else, switch-case.

Các vòng lặp for, while, do-while.

Các từ khóa break và continue trong java.

Các toán tử trong java.

Mảng (array) trong java.

File I/O trong java.

Xử lý ngoại lệ trong java.

Bài 01:

Viết chương trình tìm tất cả các số chia hết cho 7 nhưng không phải bội số của 5, nằm trong đoạn 10 và 200 (tính cả 10 và 200). Các số thu được sẽ được in thành chuỗi trên một dòng, cách nhau bằng dấu phẩy.

package vn.viettuts.baitap; import java.util.ArrayList;
import java.util.List; public class Bai01 { public static void main(String[] args) { for (int i = 10; i < 201; i++) { if ((i % 7 == 0) && (i % 5 != 0)) { list.add(i); } } showList(list); } if (list != null && !list.isEmpty()) { int size = list.size(); for (int i = 0; i < size – 1; i++) { System.out.print(list.get(i) + “, “); } System.out.println(list.get(size – 1)); } }
}

package vn.viettuts.baitap; import java.util.ArrayList; import java.util.List; public class Bai01 { public static void main(String[] args) { for (int i = 10; i < 201; i++) { if ((i % 7 == 0) && (i % 5 != 0)) { list.add(i); } } showList(list); } if (list != null && !list.isEmpty()) { int size = list.size(); for (int i = 0; i < size – 1; i++) { System.out.print(list.get(i) + “, “); } System.out.println(list.get(size – 1)); } } }

Kết quả:

14, 21, 28, 42, 49, 56, 63, 77, 84, 91, 98, 112, 119, 126, 133, 147, 154, 161, 168, 182, 189, 196

14, 21, 28, 42, 49, 56, 63, 77, 84, 91, 98, 112, 119, 126, 133, 147, 154, 161, 168, 182, 189, 196

Bài 02:

Viết một chương trình tính giai thừa của một số nguyên dương n. Với n được nhập từ bàn phím. Ví dụ, n = 8 thì kết quả đầu ra phải là 1*2*3*4*5*6*7*8 = 40320.

Sử dụng đệ quy hoặc vòng lặp để tính giai thừa.

Code mẫu: sử dụng đệ quy

package vn.viettuts.baitap; import java.util.Scanner; public class GiaiThuaDemo2 { private static Scanner scanner = new Scanner(System.in); /** * main * * @author viettuts.vn * @param args */ public static void main(String[] args) { System.out.print(“Nhập số nguyên dương n = “); int n = scanner.nextInt(); System.out.println(“Giai thừa của ” + n + ” là: ” + tinhGiaithua(n)); } /** * tinh giai thua * * @author viettuts.vn * @param n: so nguyen duong * @return giai thua cua so n */ public static long tinhGiaithua(int n) { return n * tinhGiaithua(n – 1); } else { return 1; } }
}

package vn.viettuts.baitap; import java.util.Scanner; public class GiaiThuaDemo2 { private static Scanner scanner = new Scanner(System.in); /** * main * * @author viettuts.vn * @param args */ public static void main(String[] args) { System.out.print(“Nhập số nguyên dương n = “); int n = scanner.nextInt(); System.out.println(“Giai thừa của ” + n + ” là: ” + tinhGiaithua(n)); } /** * tinh giai thua * * @author viettuts.vn * @param n: so nguyen duong * @return giai thua cua so n */ public static long tinhGiaithua(int n) { return n * tinhGiaithua(n – 1); } else { return 1; } } }

Kết quả:

Nhập số nguyên dương n = 8
Giai thừa của 8 là: 40320

Nhập số nguyên dương n = 8 Giai thừa của 8 là: 40320

Bài 03:

Hãy viết chương trình để tạo ra một map chứa (i, i*i), trong đó i là số nguyên từ 1 đến n (bao gồm cả 1 và n), n được nhập từ bàn phím. Sau đó in map này ra màn hình. Ví dụ: Giả sử số n là 8 thì đầu ra sẽ là: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64}.

Sử dụng vòng lặp for để lặp i từ 1 đến n.

package vn.viettuts.baitap; import java.util.HashMap;
import java.util.Map;
import java.util.Scanner; public class Bai03 { private static Scanner scanner = new Scanner(System.in); public static void main(String[] args) { System.out.print(“Nhập số nguyên dương n = “); int n = scanner.nextInt(); for (int i = 1; i < n + 1; i++) { map.put(i, i * i); } System.out.println(map); }
}

package vn.viettuts.baitap; import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Bai03 { private static Scanner scanner = new Scanner(System.in); public static void main(String[] args) { System.out.print(“Nhập số nguyên dương n = “); int n = scanner.nextInt(); for (int i = 1; i < n + 1; i++) { map.put(i, i * i); } System.out.println(map); } }

Kết quả:

Nhập số nguyên dương n = 10
{1=1, 2=4, 3=9, 4=16, 5=25, 6=36, 7=49, 8=64, 9=81, 10=100}

Nhập số nguyên dương n = 10 {1=1, 2=4, 3=9, 4=16, 5=25, 6=36, 7=49, 8=64, 9=81, 10=100}

Bài 04:

Viết chương trình giải phương trình bậc 2: ax2 + bx + c = 0.

package vn.viettuts.baitap; import java.util.Scanner; /** * Giải phương trình bậc 2 * * @author viettuts.vn */
public class PhuongTrinhBac2 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print(“Nhập hệ số bậc 2, a = “); float a = scanner.nextFloat(); System.out.print(“Nhập hệ số bậc 1, b = “); float b = scanner.nextFloat(); System.out.print(“Nhập hằng số tự do, c = “); float c = scanner.nextFloat(); giaiPTBac2(a, b, c); } /** * Giải phương trình bậc 2: ax2 + bx + c = 0 * * @param a: hệ số bậc 2 * @param b: hệ số bậc 1 * @param c: số hạng tự do */ public static void giaiPTBac2(float a, float b, float c) { if (a == 0) { if (b == 0) { System.out.println(“Phương trình vô nghiệm!”); } else { System.out.println(“Phương trình có một nghiệm: ” + “x = ” + (-c / b)); } return; } float delta = b*b – 4*a*c; float x1; float x2; x1 = (float) ((-b + Math.sqrt(delta)) / (2*a)); x2 = (float) ((-b – Math.sqrt(delta)) / (2*a)); System.out.println(“Phương trình có 2 nghiệm là: ” + “x1 = ” + x1 + ” và x2 = ” + x2); } else if (delta == 0) { x1 = (-b / (2 * a)); System.out.println(“Phương trình có nghiệm kép: ” + “x1 = x2 = ” + x1); } else { System.out.println(“Phương trình vô nghiệm!”); } }
}

package vn.viettuts.baitap; import java.util.Scanner; /** * Giải phương trình bậc 2 * * @author viettuts.vn */ public class PhuongTrinhBac2 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print(“Nhập hệ số bậc 2, a = “); float a = scanner.nextFloat(); System.out.print(“Nhập hệ số bậc 1, b = “); float b = scanner.nextFloat(); System.out.print(“Nhập hằng số tự do, c = “); float c = scanner.nextFloat(); giaiPTBac2(a, b, c); } /** * Giải phương trình bậc 2: ax2 + bx + c = 0 * * @param a: hệ số bậc 2 * @param b: hệ số bậc 1 * @param c: số hạng tự do */ public static void giaiPTBac2(float a, float b, float c) { if (a == 0) { if (b == 0) { System.out.println(“Phương trình vô nghiệm!”); } else { System.out.println(“Phương trình có một nghiệm: ” + “x = ” + (-c / b)); } return; } float delta = b*b – 4*a*c; float x1; float x2; x1 = (float) ((-b + Math.sqrt(delta)) / (2*a)); x2 = (float) ((-b – Math.sqrt(delta)) / (2*a)); System.out.println(“Phương trình có 2 nghiệm là: ” + “x1 = ” + x1 + ” và x2 = ” + x2); } else if (delta == 0) { x1 = (-b / (2 * a)); System.out.println(“Phương trình có nghiệm kép: ” + “x1 = x2 = ” + x1); } else { System.out.println(“Phương trình vô nghiệm!”); } } }

Kết quả:

Nhập hệ số bậc 2, a = 2
Nhập hệ số bậc 1, b = 1
Nhập hằng số tự do, c = -1
Phương trình có 2 nghiệm là: x1 = 0.5 và x2 = -1.0

Nhập hệ số bậc 2, a = 2 Nhập hệ số bậc 1, b = 1 Nhập hằng số tự do, c = -1 Phương trình có 2 nghiệm là: x1 = 0.5 và x2 = -1.0

Bài 05:

Tham khảo bảng ASCII để chuyển đổi kiểu char thành String. Hàm chr(55 + m) trong ví dụ sau:

Nếu m = 10 trả về chuỗi “A”.

Nếu m = 11 trả về chuỗi “B”.

Nếu m = 12 trả về chuỗi “C”.

Nếu m = 13 trả về chuỗi “D”.

Nếu m = 14 trả về chuỗi “E”.

Nếu m = 15 trả về chuỗi “F”.

package vn.viettuts.baitap; import java.util.Scanner; public class ConvertNumber { public static final char CHAR_55 = 55; private static Scanner scanner = new Scanner(System.in); /** * main * * @author viettuts.vn * @param args */ public static void main(String[] args) { System.out.print(“Nhập số nguyên dương n = “); int n = scanner.nextInt(); System.out.println(“So ” + n + ” trong he co so 2 = ” + ConvertNumber.convertNumber(n, 2)); System.out.println(“So ” + n + ” trong he co so 16 = ” + ConvertNumber.convertNumber(n, 16)); } /** * chuyen doi so nguyen n sang he co so b * * @author viettuts.vn * @param n: so nguyen * @param b: he co so * @return he co so b */ public static String convertNumber(int n, int b) { return “”; } StringBuilder sb = new StringBuilder(); int m; int remainder = n; m = remainder % b; sb.append((char) (CHAR_55 + m)); } else { sb.append(m); } } else { sb.append(remainder % b); } remainder = remainder / b; } return sb.reverse().toString(); }
}

package vn.viettuts.baitap; import java.util.Scanner; public class ConvertNumber { public static final char CHAR_55 = 55; private static Scanner scanner = new Scanner(System.in); /** * main * * @author viettuts.vn * @param args */ public static void main(String[] args) { System.out.print(“Nhập số nguyên dương n = “); int n = scanner.nextInt(); System.out.println(“So ” + n + ” trong he co so 2 = ” + ConvertNumber.convertNumber(n, 2)); System.out.println(“So ” + n + ” trong he co so 16 = ” + ConvertNumber.convertNumber(n, 16)); } /** * chuyen doi so nguyen n sang he co so b * * @author viettuts.vn * @param n: so nguyen * @param b: he co so * @return he co so b */ public static String convertNumber(int n, int b) { return “”; } StringBuilder sb = new StringBuilder(); int m; int remainder = n; m = remainder % b; sb.append((char) (CHAR_55 + m)); } else { sb.append(m); } } else { sb.append(remainder % b); } remainder = remainder / b; } return sb.reverse().toString(); } }

Kết quả:

Nhập số nguyên dương n = 15
So 15 trong he co so 2 = 1111
So 15 trong he co so 16 = F

Nhập số nguyên dương n = 15 So 15 trong he co so 2 = 1111 So 15 trong he co so 16 = F

Bài 06:

package vn.viettuts.baitap; import java.util.Scanner; /**
* Tính dãy số Fibonacci bằng phương pháp đệ quy
* * @author viettuts.vn
*/
public class FibonacciExample2 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print(“Nhập số nguyên dương n = “); int n = scanner.nextInt(); System.out.println(n + ” số đầu tiên của dãy số fibonacci: “); for (int i = 0; i < n; i++) { System.out.print(fibonacci(i) + ” “); } } /** * Tính số fibonacci thứ n * * @param n: chỉ số của số fibonacci tính từ 0 * vd: F0 = 0, F1 = 1, F2 = 1, F3 = 2 * @return số fibonacci thứ n */ public static int fibonacci(int n) { if (n < 0) { return -1; return n; } else { return fibonacci(n – 1) + fibonacci(n – 2); } }
}

package vn.viettuts.baitap; import java.util.Scanner; /** * Tính dãy số Fibonacci bằng phương pháp đệ quy * * @author viettuts.vn */ public class FibonacciExample2 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print(“Nhập số nguyên dương n = “); int n = scanner.nextInt(); System.out.println(n + ” số đầu tiên của dãy số fibonacci: “); for (int i = 0; i < n; i++) { System.out.print(fibonacci(i) + ” “); } } /** * Tính số fibonacci thứ n * * @param n: chỉ số của số fibonacci tính từ 0 * vd: F0 = 0, F1 = 1, F2 = 1, F3 = 2 * @return số fibonacci thứ n */ public static int fibonacci(int n) { if (n < 0) { return -1; return n; } else { return fibonacci(n – 1) + fibonacci(n – 2); } } }

Kết quả:

Nhập số nguyên dương n = 12
12 số đầu tiên của dãy số fibonacci: 0 1 1 2 3 5 8 13 21 34 55 89

Nhập số nguyên dương n = 12 12 số đầu tiên của dãy số fibonacci: 0 1 1 2 3 5 8 13 21 34 55 89

Bài 07:

Viết chương trình tìm ước số chung lớn nhất (USCLN) và bội số chung nhỏ nhất (BSCNN) của hai số nguyên dương a và b nhập từ bàn phím.

package vn.viettuts.baitap; import java.util.Scanner; public class USCLL_BSCNN_1 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print(“Nhập số nguyên dương a = “); int a = scanner.nextInt(); System.out.print(“Nhập số nguyên dương b = “); int b = scanner.nextInt(); System.out.println(“USCLN của ” + a + ” và ” + b + ” là: ” + USCLN(a, b)); System.out.println(“BSCNN của ” + a + ” và ” + b + ” là: ” + BSCNN(a, b)); } /** * Tìm ước số chung lớn nhất (USCLN) * * @param a: số nguyên dương * @param b: số nguyên dương * @return USCLN của a và b */ public static int USCLN(int a, int b) { if (b == 0) return a; return USCLN(b, a % b); } /** * Tìm bội số chung nhỏ nhất (BSCNN) * * @param a: số nguyên dương * @param b: số nguyên dương * @return BSCNN của a và b */ public static int BSCNN(int a, int b) { return (a * b) / USCLN(a, b); }
}

package vn.viettuts.baitap; import java.util.Scanner; public class USCLL_BSCNN_1 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print(“Nhập số nguyên dương a = “); int a = scanner.nextInt(); System.out.print(“Nhập số nguyên dương b = “); int b = scanner.nextInt(); System.out.println(“USCLN của ” + a + ” và ” + b + ” là: ” + USCLN(a, b)); System.out.println(“BSCNN của ” + a + ” và ” + b + ” là: ” + BSCNN(a, b)); } /** * Tìm ước số chung lớn nhất (USCLN) * * @param a: số nguyên dương * @param b: số nguyên dương * @return USCLN của a và b */ public static int USCLN(int a, int b) { if (b == 0) return a; return USCLN(b, a % b); } /** * Tìm bội số chung nhỏ nhất (BSCNN) * * @param a: số nguyên dương * @param b: số nguyên dương * @return BSCNN của a và b */ public static int BSCNN(int a, int b) { return (a * b) / USCLN(a, b); } }

Kết quả:

Nhập số nguyên dương a = 10
Nhập số nguyên dương b = 24
USCLN của 10 và 24 là: 2
BSCNN của 10 và 24 là: 120

Nhập số nguyên dương a = 10 Nhập số nguyên dương b = 24 USCLN của 10 và 24 là: 2 BSCNN của 10 và 24 là: 120

Bài 08:

Viết chương trình liệt kê tất cả các số nguyên tố nhỏ hơn n. Số nguyên dương n được nhập từ bàn phím.

package vn.viettuts.baitap; import java.util.Scanner; /** * Chương trình liệt kê tất cả các số nguyên tố nhỏ hơn n. * * @author viettuts.vn */
public class BaiTap08 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print(“Nhập n = “); int n = scanner.nextInt(); System.out.printf(“Tất cả các số nguyên tố nhỏ hơn %d là: n”, n); System.out.print(2); } for (int i = 3; i < n; i+=2) { if (isPrimeNumber(i)) { System.out.print(” ” + i); } } } /** * check so nguyen to * * @author viettuts.vn * @param n: so nguyen duong * @return true la so nguyen so, * false khong la so nguyen to */ public static boolean isPrimeNumber(int n) { if (n < 2) { return false; } int squareRoot = (int) Math.sqrt(n); for (int i = 2; i <= squareRoot; i++) { if (n % i == 0) { return false; } } return true; }
}

package vn.viettuts.baitap; import java.util.Scanner; /** * Chương trình liệt kê tất cả các số nguyên tố nhỏ hơn n. * * @author viettuts.vn */ public class BaiTap08 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print(“Nhập n = “); int n = scanner.nextInt(); System.out.printf(“Tất cả các số nguyên tố nhỏ hơn %d là: n”, n); System.out.print(2); } for (int i = 3; i < n; i+=2) { if (isPrimeNumber(i)) { System.out.print(” ” + i); } } } /** * check so nguyen to * * @author viettuts.vn * @param n: so nguyen duong * @return true la so nguyen so, * false khong la so nguyen to */ public static boolean isPrimeNumber(int n) { if (n < 2) { return false; } int squareRoot = (int) Math.sqrt(n); for (int i = 2; i <= squareRoot; i++) { if (n % i == 0) { return false; } } return true; } }

Kết quả:

Nhập n = 100
Tất cả các số nguyên tố nhỏ hơn 100 là: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

Nhập n = 100 Tất cả các số nguyên tố nhỏ hơn 100 là: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

Bài 09:

Viết chương trình liệt kê n số nguyên tố đầu tiên trong java. Số nguyên dương n được nhập từ bàn phím.

package vn.viettuts.baitap; import java.util.Scanner; /** * Chương trình liệt kê n số nguyên tố đầu tiên. * * @author viettuts.vn */
public class BaiTap09 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print(“Nhập n = “); int n = scanner.nextInt(); System.out.printf(“%d số nguyên tố đầu tiên là: n”, n); int dem = 0; int i = 2; while (dem < n) { if (isPrimeNumber(i)) { System.out.print(i + ” “); dem++; } i++; } } /** * check so nguyen to * * @author viettuts.vn * @param n: so nguyen duong * @return true la so nguyen so, * false khong la so nguyen to */ public static boolean isPrimeNumber(int n) { if (n < 2) { return false; } int squareRoot = (int) Math.sqrt(n); for (int i = 2; i <= squareRoot; i++) { if (n % i == 0) { return false; } } return true; }
}

package vn.viettuts.baitap; import java.util.Scanner; /** * Chương trình liệt kê n số nguyên tố đầu tiên. * * @author viettuts.vn */ public class BaiTap09 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print(“Nhập n = “); int n = scanner.nextInt(); System.out.printf(“%d số nguyên tố đầu tiên là: n”, n); int dem = 0; int i = 2; while (dem < n) { if (isPrimeNumber(i)) { System.out.print(i + ” “); dem++; } i++; } } /** * check so nguyen to * * @author viettuts.vn * @param n: so nguyen duong * @return true la so nguyen so, * false khong la so nguyen to */ public static boolean isPrimeNumber(int n) { if (n < 2) { return false; } int squareRoot = (int) Math.sqrt(n); for (int i = 2; i <= squareRoot; i++) { if (n % i == 0) { return false; } } return true; } }

Kết quả:

Nhập n = 10
10 số nguyên tố đầu tiên là: 2 3 5 7 11 13 17 19 23 29

Nhập n = 10 10 số nguyên tố đầu tiên là: 2 3 5 7 11 13 17 19 23 29

Bài 10:

Viết chương trình liệt kê tất cả số nguyên tố có 5 chữ số trong java.

package vn.viettuts.baitap; /** * Chương trình liệt kê tất cả số nguyên tố có 5 chữ số. * * @author viettuts.vn */
public class BaiTap10 { /** * main * * @param args */ public static void main(String[] args) { int count = 0; System.out.println(“Liệt kê tất cả số nguyên tố có 5 chữ số:”); for (int i = 10001; i < 99999; i+=2) { if (isPrimeNumber(i)) { System.out.println(i); count++; } } System.out.println(“Tổng các số nguyên tố có 5 chữ số là: ” + count); } /** * check so nguyen to * * @author viettuts.vn * @param n: so nguyen duong * @return true la so nguyen so, * false khong la so nguyen to */ public static boolean isPrimeNumber(int n) { if (n < 2) { return false; } int squareRoot = (int) Math.sqrt(n); for (int i = 2; i <= squareRoot; i++) { if (n % i == 0) { return false; } } return true; }
}

package vn.viettuts.baitap; /** * Chương trình liệt kê tất cả số nguyên tố có 5 chữ số. * * @author viettuts.vn */ public class BaiTap10 { /** * main * * @param args */ public static void main(String[] args) { int count = 0; System.out.println(“Liệt kê tất cả số nguyên tố có 5 chữ số:”); for (int i = 10001; i < 99999; i+=2) { if (isPrimeNumber(i)) { System.out.println(i); count++; } } System.out.println(“Tổng các số nguyên tố có 5 chữ số là: ” + count); } /** * check so nguyen to * * @author viettuts.vn * @param n: so nguyen duong * @return true la so nguyen so, * false khong la so nguyen to */ public static boolean isPrimeNumber(int n) { if (n < 2) { return false; } int squareRoot = (int) Math.sqrt(n); for (int i = 2; i <= squareRoot; i++) { if (n % i == 0) { return false; } } return true; } }

Kết quả:

Liệt kê tất cả số nguyên tố có 5 chữ số:
10007
10009
10037

99971
99989
99991
Tổng các số nguyên tố có 5 chữ số là: 8363

Liệt kê tất cả số nguyên tố có 5 chữ số: 10007 10009 10037 … 99971 99989 99991 Tổng các số nguyên tố có 5 chữ số là: 8363

Bài 11:

Viết chương trình phân tích số nguyên n thành các thừa số nguyên tố trong java. Ví dụ: 100 = 2x2x5x5.

package vn.viettuts.baitap; import java.util.ArrayList;
import java.util.List;
import java.util.Scanner; /** * Chương trình phân tích số nguyên n thành các thừa số nguyên tố. * Ví dụ: 12 = 2 x 2 x 3. * * @author viettuts.vn */
public class BaiTap11 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print(“Nhập số nguyên dương n = “); int n = scanner.nextInt(); System.out.printf(“Kết quả: %d = “, n); int size = listNumbers.size(); for (int i = 0; i < size – 1; i++) { System.out.print(listNumbers.get(i) + ” x “); } System.out.print(listNumbers.get(size – 1)); } /** * Phân tích số nguyên thành tích các thừa số nguyên tố * * @param positiveInt * @return */ int i = 2; if (n % i == 0) { n = n / i; listNumbers.add(i); } else { i++; } } if (listNumbers.isEmpty()) { listNumbers.add(n); } return listNumbers; }
}

package vn.viettuts.baitap; import java.util.ArrayList; import java.util.List; import java.util.Scanner; /** * Chương trình phân tích số nguyên n thành các thừa số nguyên tố. * Ví dụ: 12 = 2 x 2 x 3. * * @author viettuts.vn */ public class BaiTap11 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print(“Nhập số nguyên dương n = “); int n = scanner.nextInt(); System.out.printf(“Kết quả: %d = “, n); int size = listNumbers.size(); for (int i = 0; i < size – 1; i++) { System.out.print(listNumbers.get(i) + ” x “); } System.out.print(listNumbers.get(size – 1)); } /** * Phân tích số nguyên thành tích các thừa số nguyên tố * * @param positiveInt * @return */ int i = 2; if (n % i == 0) { n = n / i; listNumbers.add(i); } else { i++; } } if (listNumbers.isEmpty()) { listNumbers.add(n); } return listNumbers; } }

Kết quả:

Nhập số nguyên dương n = 100
Kết quả: 100 = 2 x 2 x 5 x 5

Nhập số nguyên dương n = 100 Kết quả: 100 = 2 x 2 x 5 x 5

Bài 12:

Viết chương trình tính tổng của các chữ số của môt số nguyên n trong java. Số nguyên dương n được nhập từ bàn phím. Với n = 1234, tổng các chữ số: 1 + 2 + 3 + 4 = 10

package vn.viettuts.baitap; import java.util.Scanner; /** * Chương trình tính tổng của các chữ số của môt số nguyên dương n. * Tổng của các chữ số của 6677 là 6 + 6 + 7 + 7 = 26. * * @author viettuts.vn */
public class BaiTap12 { private static Scanner scanner = new Scanner(System.in); public static int DEC_10 = 10; /** * main * * @param args */ public static void main(String[] args) { System.out.print(“Nhập số nguyên dương n = “); int n = scanner.nextInt(); System.out.printf(“Tổng của các chữ số ” + “của %d là: %d”, n, totalDigitsOfNumber(n)); } /** * Tính tổng của các chữ số của một số nguyên dương * * @param n: số nguyên dương * @return */ public static int totalDigitsOfNumber(int n) { int total = 0; do { total = total + n % DEC_10; n = n / DEC_10; return total; }
}

package vn.viettuts.baitap; import java.util.Scanner; /** * Chương trình tính tổng của các chữ số của môt số nguyên dương n. * Tổng của các chữ số của 6677 là 6 + 6 + 7 + 7 = 26. * * @author viettuts.vn */ public class BaiTap12 { private static Scanner scanner = new Scanner(System.in); public static int DEC_10 = 10; /** * main * * @param args */ public static void main(String[] args) { System.out.print(“Nhập số nguyên dương n = “); int n = scanner.nextInt(); System.out.printf(“Tổng của các chữ số ” + “của %d là: %d”, n, totalDigitsOfNumber(n)); } /** * Tính tổng của các chữ số của một số nguyên dương * * @param n: số nguyên dương * @return */ public static int totalDigitsOfNumber(int n) { int total = 0; do { total = total + n % DEC_10; n = n / DEC_10; return total; } }

Kết quả:

Nhập số nguyên dương n = 6677
Tổng của các chữ số của 6677 là: 26

Nhập số nguyên dương n = 6677 Tổng của các chữ số của 6677 là: 26

Bài 13:

Viết chương trình kiểm tra một số n là số thuận nghịch trong java. Số nguyên dương n được nhập từ bàn phím.

package vn.viettuts.baitap; import java.util.Scanner; /** * Chương trình liệt kê tất cả các số thuận nghịch có 6 chữa số. * * @author viettuts.vn */
public class BaiTap13 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print(“Nhập số nguyên dương n = “); int n = scanner.nextInt(); System.out.println(n + ” là số thuận nghịch: ” + isThuanNghich(n)); System.out.print(“Nhập số nguyên dương m = “); int m = scanner.nextInt(); System.out.println(n + ” là số thuận nghịch: ” + isThuanNghich(m)); } /** * Kiểm tra số thuận nghịch * * @param n: số nguyên dương * @return true là số thuận nghịch * false không là số thuận nghịch */ public static boolean isThuanNghich(int n) { String numberStr = String.valueOf(n); int size = numberStr.length(); for (int i = 0; i < (size/2); i++) { if (numberStr.charAt(i) != numberStr.charAt(size – i – 1)) { return false; } } return true; }
}

package vn.viettuts.baitap; import java.util.Scanner; /** * Chương trình liệt kê tất cả các số thuận nghịch có 6 chữa số. * * @author viettuts.vn */ public class BaiTap13 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print(“Nhập số nguyên dương n = “); int n = scanner.nextInt(); System.out.println(n + ” là số thuận nghịch: ” + isThuanNghich(n)); System.out.print(“Nhập số nguyên dương m = “); int m = scanner.nextInt(); System.out.println(n + ” là số thuận nghịch: ” + isThuanNghich(m)); } /** * Kiểm tra số thuận nghịch * * @param n: số nguyên dương * @return true là số thuận nghịch * false không là số thuận nghịch */ public static boolean isThuanNghich(int n) { String numberStr = String.valueOf(n); int size = numberStr.length(); for (int i = 0; i < (size/2); i++) { if (numberStr.charAt(i) != numberStr.charAt(size – i – 1)) { return false; } } return true; } }

Kết quả:

Nhập số nguyên dương n = 123321
123321 là số thuận nghịch: true
Nhập số nguyên dương m = 123451
123321 là số thuận nghịch: false

Nhập số nguyên dương n = 123321 123321 là số thuận nghịch: true Nhập số nguyên dương m = 123451 123321 là số thuận nghịch: false

Bài 14:

Viết chương trình liệt kê các số Fibonacci nhỏ hơn n là số nguyên tố trong java. N là số nguyên dương được nhập từ bàn phím.

package vn.viettuts.baitap; import java.util.Scanner; /** * Chương trình liệt kê các số Fibonacci nhỏ hơn n là số nguyên tố. * Với n được nhập từ bàn phím. * * @author viettuts.vn */
public class BaiTap14 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print(“Nhập số tự nhiên n = “); int n = scanner.nextInt(); System.out.printf(“Các số fibonacci nhỏ hơn %d và ” + “là số nguyên tố: “, n); int i = 0; while (fibonacci(i) < 100) { int fi = fibonacci(i); if (isPrimeNumber(fi)) { System.out.print(fi + ” “); } i++; } } /** * Tính số fibonacci thứ n * * @param n: chỉ số của số fibonacci tính từ 0 * vd: F0 = 0, F1 = 1, F2 = 1, F3 = 2 * @return số fibonacci thứ n */ public static int fibonacci(int n) { if (n < 0) { return -1; return n; } else { return fibonacci(n – 1) + fibonacci(n – 2); } } /** * check so nguyen to * * @author viettuts.vn * @param n: so nguyen duong * @return true la so nguyen so, * false khong la so nguyen to */ public static boolean isPrimeNumber(int n) { if (n < 2) { return false; } int squareRoot = (int) Math.sqrt(n); for (int i = 2; i <= squareRoot; i++) { if (n % i == 0) { return false; } } return true; }
}

package vn.viettuts.baitap; import java.util.Scanner; /** * Chương trình liệt kê các số Fibonacci nhỏ hơn n là số nguyên tố. * Với n được nhập từ bàn phím. * * @author viettuts.vn */ public class BaiTap14 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print(“Nhập số tự nhiên n = “); int n = scanner.nextInt(); System.out.printf(“Các số fibonacci nhỏ hơn %d và ” + “là số nguyên tố: “, n); int i = 0; while (fibonacci(i) < 100) { int fi = fibonacci(i); if (isPrimeNumber(fi)) { System.out.print(fi + ” “); } i++; } } /** * Tính số fibonacci thứ n * * @param n: chỉ số của số fibonacci tính từ 0 * vd: F0 = 0, F1 = 1, F2 = 1, F3 = 2 * @return số fibonacci thứ n */ public static int fibonacci(int n) { if (n < 0) { return -1; return n; } else { return fibonacci(n – 1) + fibonacci(n – 2); } } /** * check so nguyen to * * @author viettuts.vn * @param n: so nguyen duong * @return true la so nguyen so, * false khong la so nguyen to */ public static boolean isPrimeNumber(int n) { if (n < 2) { return false; } int squareRoot = (int) Math.sqrt(n); for (int i = 2; i <= squareRoot; i++) { if (n % i == 0) { return false; } } return true; } }

Kết quả:

Nhập số tự nhiên n = 100
Các số fibonacci nhỏ hơn 100 và là số nguyên tố: 2 3 5 13 89

Nhập số tự nhiên n = 100 Các số fibonacci nhỏ hơn 100 và là số nguyên tố: 2 3 5 13 89

Các bài tập khác:

Viết chương trình nhập số nguyên dương n và thực hiện các chức năng sau: a) Tính tổng các chữ số của n. b) Phân tích n thành tích các thừa số nguyên tố. c) Liệt kê các ước số của n. d) Liệt kê các ước số là nguyên tố của n.

Viết chương trình liệt kệ các số nguyên có từ 5 đến 7 chữ số thảo mãn: a) Là số nguyên tố. b) Là số thuận nghịch. c) Mỗi chữ số đều là số nguyên tố. d) Tổng các chữ số là số nguyên tố.

Viết chương trình liệt kệ các số nguyên có 7 chữ số thảo mãn: a) Là số nguyên tố. b) Là số thuận nghịch. c) Mỗi chữ số đều là số nguyên tố. d) Tổng các chữ số là số thuận nghịch.

2. Bài tập chuỗi trong Java

Danh sách bài tập:

Nhập một sâu ký tự. Đếm số từ của sâu đó (mỗi từ cách nhau bởi một khoảng trắng có thể là một hoặc nhiều dấu cách, tab, xuống dòng). Ví dụ ” hoc java co ban den nang cao ” có 7 từ. Lời giải: Đếm số từ trong một chuỗi.

Nhập một sâu ký tự. Liệt kê số lần xuất hiện của các từ của sâu đó. Lời giải: Liệt kê số lần xuất hiện của các từ trong một chuỗi.

Nhập 2 sâu ký tự s1 và s2. Kiểm tra xem sâu s1 có chứa s2 không? Lời giải: Chuỗi chứa chuỗi trong java.

3. Bài tập mảng trong Java

Các bài tập trong phần này thao tác với mảng một chiều và 2 chiều trong java, bạn có thể tham khảo bài học mảng (Array) trong java

Danh sách bài tập:

Nhập một mảng số thực a0, a1, a2, …, an-1. Không dùng thêm mảng số thực nào khác (có thể dùng thêm mảng số nguyên), hãy in ra màn hình mảng trên theo thứ tự tăng dần.

Nhập 2 mảng số thực a0, a1, a2, …, am-1 và b0, b1, b2, …, bn-1. Giả sử 2 mảng này đã được sắp xếp tăng dần. Hãy tận dụng tính sắp xếp của 2 dãy và tạo dãy c0, c1, c2, …, cm+n-1 là hợp của 2 dãy trên sao cho ci cũng có thứ tự tăng dần. Lời giải: Trộn 2 mảng trong java

Viết chương trình nhập vào mảng A có n phần tử, các phần tử là số nguyên lớn hơn 0 và nhỏ hơn 100. Thực hiện các chức năng sau: a) Tìm phần tử lớn thứ nhất và lớn thứ 2 trong mảng với các chỉ số của chúng (chỉ số đầu tiên tìm được). b) Sắp xếp mảng theo thứ tự tăng dần. c) Nhập số nguyên x và chèn x vào mảng A sao cho vẫn đảm bảo tính tăng dần cho mảng A.

Viết chương trình nhập vào ma trận A có n dòng, m cột, các phần tử là số nguyên lớn hơn 0 và nhỏ hơn 100. Thực hiện các chức năng sau: a) Tìm phần tử lớn thứ nhất với chỉ số của nó (chỉ số đầu tiên tìm được). b) Tìm và in ra các phần tử là số nguyên tố của ma trận (các phần tử không nguyên tố thì thay bằng số 0). c) Sắp xếp tất cả các cột của ma trận theo thứ tự tăng dần và in kết quả ra màn hình. d) Tìm cột trong ma trận có nhiều số nguyên tố nhất.

4. Bài tập về các thuật toán sắp xếp trong Java

Bạn có thể xem các giải thuật sắp xếp trong phần cấu trúc dữ liệu và giải thuật: Giải thuật sắp xếp

5. Bài tập java nâng cao

Trong phần này, bạn phải nắm được các kiến thức về:

Lớp và đối tượng trong java.

Access modifier trong java

Các tính chất của lập trình hướng đối tượng (OOP).

Các khái niệm Java OOPs.

Collection trong java.

Xử lý ngoại lệ trong java.

Bài tập quản lý sinh viên trong Java – console

Đề bài: Viết chương trình quản lý sinh viên. Mỗi đối tượng sinh viên có các thuộc tính sau: id, name, age, address và gpa (điểm trung bình). Yêu cầu: tạo ra một menu với các chức năng sau:

/****************************************/ 1. Add student. 2. Edit student by id. 3. Delete student by id. 4. Sort student by gpa. 5. Sort student by name. 6. Show student. 0. Exit. /****************************************/

Lời giải: Bài tập quản lý sinh viên trong java – giao diện dòng lệnh

Bài tập quản lý sinh viên trong Java – Swing

Lời giải: Bài tập quản lý sinh viên trong java bằng Swing

Gọi P là hình chiếu của điểm N lên trục x. Chứng minh rằng điểm P là dao động điều hòa.

Gọi P là hình chiếu của điểm N lên trục Ox. Khi đó ta có tọa độ x = OP, tại điểm P sẽ có phương trình là Xp = ONsin(ωt + φ)

Vì hàm sin và hàm cosin là một dao động điều hòa, nên dao động của điểm P được gọi là dao động điều hòa.

Khảo sát sự dao động của con lắc lò xo khi nằm ngang. Tìm công thức của lực lò xo khi kéo về?

Con lắc lò xo được coi là một hệ dao động điều hòa. Ta có công thức của lực kéo về khi tác dụng vào con lắc lò xo là F = -kx (x là li độ của vật m, k là độ cứng của lò xo, “-” là lực F đang hướng về vị trí cân bằng.

Hãy chọn đáp án đúng

Có một con lắc đơn đang dao động với biên độ góc nhỏ. Chu kì của con lắc đơn sẽ không đổi khi nào?

Khi chiều dài của con lắc thay đổi.

Khi gia tốc trọng trường thay đổi.

Khi biên độ góc tăng đến 30 .

Khi khối lượng của con lắc thay đổi.

Đáp án là D. Vì ta thấy chu kỳ của con lắc đơn chỉ phụ thuộc vào 2 yếu tố là g và l, chứ không phụ thuộc vào yếu tố khối lượng m. Do đó khối lượng của con lắc thay đổi thì chu kỳ của con lắc đơn sẽ không đổi.

Dao động tắt dần có đặc điểm như thế nào và tại sao?

Thực tế khi con lắc bị kéo ra khỏi vị trí cân bằng thì biên độ dao động sẽ giảm dần khi thả ra. Và dao động đó gọi là dao động tắt dần. Lý do vì con lắc dao động sẽ chịu lực cản của không khí. Lực cản này chính là một lực ma sát làm tiêu hao đi năng lực của con lắc, giúp chuyển hóa cơ năng thành nhiệt năng. Nên biên độ dao động của con lắc sẽ giảm dần và dừng lại.

Trình bày phương pháp giản đồ Fre – nen giúp tìm được dao động tổng hợp của dao động điều hòa khi có phương cùng tần số

Lần lượt vẽ hai vecto quay để biểu diễn hai phương trình dao động, sau đó vẽ tiếp vecto tổng của hai vecto trên. Vecto tổng chính là vecto quay để biểu diễn phương trình của dao động tổng hợp đó.

Hãy dự đoán xem chu kì dao động T của một con lắc đơn sẽ phụ thuộc vào những đại lượng của nó như thế nào? Làm sao để kiểm tra từng dự đoán đó trên thí nghiệm?

Dự đoán chu kì T của con lắc đơn sẽ phụ thuộc vào những đại lượng l, m và α0. Nên để kiểm tra những dự đoán đó thì chúng ta cần tiến hành thí nghiệm, đó là thay đổi một đại lượng đồng thời giữ không đổi hai đại lượng.

Khi O dao động thì mặt nước sẽ có hình dạng như thế nào? Mẩu nút chai có bị đẩy ra xa dao động O không?

Khi O dao động thì các gợn sóng hình tròn đồng tâm O sẽ lan dần ra trên mặt nước. Nên mẩu của nút chai sẽ không bị đẩy ra xa O, nó chỉ dao động lên xuống tại một điểm.

Đề bài: Sự phản xạ của sóng bên trên vật cản cố định có những đặc điểm như thế nào?

Nếu một vật cản cố định thì tại điểm phản xạ, sóng phản xạ sẽ luôn ngược pha với sóng tới, cuối cùng sẽ triệt tiêu lẫn nhau.

Hãy nêu ví dụ cụ thể chứng tỏ rằng âm truyền với một tốc độ hữu hạn.

Ví dụ 1: Ta thường thấy tia chớp chói sáng xuất hiện khi trời mưa giông, sau một khoảng thời gian lâu thì xuất hiện tiếng sấm.

Ví dụ 2: Một người đánh kẻng cách chúng ta khoảng từ 150m đến 200m, Chúng ta thường nghe tiếng dùi đánh vào kẻng trước sau đó mới nghe thấy tiếng kẻng.

bài 4: java giao diện, tạo notoped….

import java.awt.*; import java.awt.event.*; public class myFrame2 extends Frame { MenuBar mb=new MenuBar(); Menu filemenu=new Menu(“file”); MenuItem menuitemNew=new MenuItem(“New Ctrl+N”); MenuItem menuitemOpen=new MenuItem(“Open Ctrl+O”); MenuItem menuitemSave=new MenuItem(“Save Ctrl+S”); MenuItem menuitemSaveAs=new MenuItem(“Save As”); MenuItem menuitemPateSetup=new MenuItem(“Pate Setup”); MenuItem menuitemPrint=new MenuItem(“Print Ctrl+P”); MenuItem menuitemExit=new MenuItem(“Exit”); Menu editmenu=new Menu(“Edit”); MenuItem menuitemUndo=new MenuItem(“Undo Ctrl+Z”); MenuItem menuitemCut=new MenuItem(“Cut Ctrl+X”); MenuItem menuitemCopy=new MenuItem(“Copy Ctrl+C”); MenuItem menuitemPaste=new MenuItem(“Paste Ctrl+V”); MenuItem menuitemDelete=new MenuItem(“Delete Del”); MenuItem menuitemGoto=new MenuItem(“Go to Ctrl+G”); Menu formatmenu=new Menu(“Format”); MenuItem menuitemWordWrap=new MenuItem(“Word Wrap”); MenuItem menuitemFont=new MenuItem(“Font…”); Menu Viewmenu=new Menu(“View”); MenuItem menuitemStatusBar=new MenuItem(“Status Bar”); Menu Helpmenu=new Menu(“Help”); MenuItem menuitemViewhelp=new MenuItem(“View help”); MenuItem menuitemAboutNotepad=new MenuItem(“About Notepad”); public myFrame2(String title) { super(title); this.setMenuBar(mb); mb.add(filemenu); mb.add(editmenu); mb.add(formatmenu); mb.add(Viewmenu); mb.add(Helpmenu); filemenu.add(menuitemNew); filemenu.addSeparator(); filemenu.add(menuitemOpen); filemenu.addSeparator(); filemenu.add(menuitemSave); filemenu.addSeparator(); filemenu.add(menuitemSaveAs); filemenu.addSeparator(); filemenu.add(menuitemPateSetup); filemenu.addSeparator(); filemenu.add(menuitemPrint); filemenu.addSeparator(); filemenu.add(menuitemExit); editmenu.add(menuitemUndo); editmenu.addSeparator(); editmenu.add(menuitemCut); editmenu.addSeparator(); editmenu.add(menuitemCopy); editmenu.addSeparator(); editmenu.add(menuitemPaste); editmenu.addSeparator(); editmenu.add(menuitemDelete); editmenu.addSeparator(); editmenu.add(menuitemGoto); formatmenu.add(menuitemWordWrap); formatmenu.addSeparator(); formatmenu.add(menuitemFont); Viewmenu.add(menuitemStatusBar); Helpmenu.add(menuitemViewhelp); Helpmenu.addSeparator(); Helpmenu.add(menuitemAboutNotepad); }

public static void main(String[] args) { myFrame2 f=new myFrame2(“Unitited – Notoped”); f.setSize(400,400); f.setVisible(true); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent we) { System.exit(0); } }); } }

Cập nhật thông tin chi tiết về Tổng Hợp Bài Tập Java Có Lời Giải / 2023 trên website Ictu-hanoi.edu.vn. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất. Chúc bạn một ngày tốt lành!