Bài Tập Java Có Lời Giải - Học Lập Trình Java - Viettuts
Có thể bạn quan tâm
Nội dung chính
- Bài tập Java có lời giải
- 1. Bài tập java cơ bản
- 2. Bài tập chuỗi trong Java
- 3. Bài tập mảng trong Java
- 4. Bài tập về các thuật toán sắp xếp trong Java
- 5. Bài tập java nâng cao
- Bài tập quản lý sinh viên trong Java - console
- Bài tập quản lý sinh viên trong Java - Swing
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.
Note: Trước khi xem lời giải thì các bạn hãy tự làm trước nhé và hãy common hóa (phân tách thành phương thức riêng) những gì có thể sử dụng lại được.
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.
Gợi ý:
- Sử dụng vòng lặp for
Code mẫu:
package vn.viettuts.baitap; import java.util.ArrayList; import java.util.List; public class Bai01 { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); for (int i = 10; i < 201; i++) { if ((i % 7 == 0) && (i % 5 != 0)) { list.add(i); } } // hiển thị list ra màn hình showList(list); } public static void showList(List<Integer> 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, 196Bà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.
Gợi ý:
- 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) { if (n > 0) { 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à: 40320Bà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}.
Gợi ý:
- Sử dụng vòng lặp for để lặp i từ 1 đến n.
Code mẫu:
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(); Map<Integer, Integer> map = new HashMap<Integer, Integer>(); 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}Bài 04:
Viết chương trình giải phương trình bậc 2: ax2 + bx + c = 0.
Code mẫu:
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) { // kiểm tra các hệ số 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; } // tính delta float delta = b*b - 4*a*c; float x1; float x2; // tính nghiệm if (delta > 0) { 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.0Bài 05:
Viết chương trình chuyển đổi một số tự nhiên ở hệ số 10 thành một số ở hệ cơ số B (1
Từ khóa » Bài Tập Về Vòng Lặp Trong Java
-
Bài Tập Về Vòng Lặp Trong Java: Tính Tổng Các Số Từ N Về -5 - CodeLearn
-
Bài Tập Về Vòng Lặp Trong Java: Tính Tổng Các Số Từ A Tới B - CodeLearn
-
Luyện Tập Vòng Lặp Trong Java
-
Vòng Lặp For Trong Java Với Ví Dụ Cụ Thể - Deft Blog
-
Java: Solution Bài Tập Phần Vòng Lặp | V1Study
-
Java Basic- Ôn Luyện Về Vòng Lặp For, While, Do-while Trong Java
-
Vòng Lặp For Trong Java - Học Java Miễn Phí Hay Nhất - VietTuts
-
Vòng Lặp For Trong Java - 155 Bài Học Java Miễn Phí Hay Nhất
-
[Update] Luyện Tập Vòng Lặp Trong Java | Bài Tập Vòng Lặp
-
Vòng Lặp For Trong Java | How Kteam
-
Bài 1: Bài Tập Làm Quen Với Java - VnCoder
-
Vòng Lặp Do - While Trong Java - Freetuts
-
Bài Tập Java Có Lời Giải Cơ Bản đến Nâng Cao - Freetuts
-
Tìm Hiểu Tổng Quan Về Vòng Lặp Loop Trong Java