Bài 2: Bài Tập Java Toán, Số Học - Tổng Hợp Bài Tập Java Có Lời Giải
Có thể bạn quan tâm
- Học lập trình
- |
- Bài viết
- |
- Tin tức
- |
- Tuyển dụng
- |
- Liên hệ
- |
- Đăng ký
- |
- Đăng nhập
PHP
Laravel
Android
Java
HTML5
CSS3
NodeJS
VueJS
Swift
Python
Machine Learning
C/C++
Linux/Server
SQL
Javascript
Game
Phân tích thiết kế hệ thống
Servlet/JSP
AI
- Trang chủ
- Java
- Tổng hợp Bài tập Java có lời giải
- Bài tập Java Toán, Số học
- Bài 1: Bài tập làm quen với Java
- Bài 2: Bài tập Java Toán, Số học
- Bài 3: Bài tập Java về mảng, dãy số
Bài 2: Bài tập Java Toán, Số học - Tổng hợp Bài tập Java có lời giải
Đăng bởi: Admin | Lượt xem: 7994 | Chuyên mục: Java Trong bài này mình sẽ tổng hợp một số bài tập Java liên quan đến các bài toán số học, tìm UCLN, BCNN, số nguyên tố, giai thừa, luỹ thừa, giải phương trìnhTrong bài này mình sẽ tổng hợp một số bài tập Java liên quan đến các bài toán số học, tìm UCLN, BCNN, số nguyên tố, giai thừa, luỹ thừa, giải phương trìnhBài 1. Tính giai thừa 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.Hướng dẫn:Bài này chúng ta có thể sử dụng vòng lặp hoặc đệ quy để giải Code mẫu:package vn.vncoder; import java.util.Scanner; public class Main { public static void main(String[] args) { System.out.print("Nhập số nguyên dương n = "); Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int gt = 1; for (int i = 1; i <= n; i++){ gt = gt * i; } System.out.println("Giai thừa của " + n + " là: " + gt); } }Code mẫu đệ quy:package vn.vncoder; import java.util.Scanner; public class Main { public static void main(String[] args) { System.out.print("Nhập số nguyên dương n = "); Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); System.out.println("Giai thừa của " + n + " là: " + tinhGiaithua(n)); } /** * tinh giai thua */ 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 = 5 Giai thừa của 5 là: 120Bài 2. Kiểm tra số nguyên tốNhập vào một số nguyên dương n, kiểm tra xem n có phải là số nguyên tố hay không?Hướng dẫn:Nếu n < 2 thì n không phải là số nguyên tốNếu n >= 2 thì n là số nguyên tố nếu n chỉ chia hết cho một và chính nó. Ta dùng phòng for cho biến i chạy từ 2 tới căn bậc 2 của n, nếu n chia hết cho i thì n không phải là số nguyên tốCode mẫu:package vn.vncoder; import java.util.Scanner; public class Main { public static void main(String[] args) { System.out.print("Nhập số nguyên dương n = "); Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); if (n < 2) { System.out.println("n không phải là số nguyên tố"); } boolean isSoNguyenTo = true; for (int i = 2; i < Math.sqrt(n); i++){ if(n%i == 0){ isSoNguyenTo = false; break; } } if (isSoNguyenTo) { System.out.println("n là số nguyên tố"); } else { System.out.println("n không phải là số nguyên tố"); } } }Kết quả:Nhập số nguyên dương n = 8 n không phải là số nguyên tố Nhập số nguyên dương n = 13 n là số nguyên tốBài 3. Liệt kê số nguyên tố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ímHướng dẫn:Bài này tương tự bài trên, tuy nhiên chúng ta sẽ dùng vòng for duyệt các số nguyên dượng từ 2 tới n, và kiểm tra từng số này bằng một hàm check số nguyên tốCode mẫu:package vn.vncoder; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); 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); if (n >= 2) { System.out.print(2); } for (int i = 3; i < n; i+=2) { if (isPrimeNumber(i)) { System.out.print(" " + i); } } } /** * check so nguyen to * * @author VNCoder * @param n: so nguyen duong * @return true la so nguyen so, * false khong la so nguyen to */ public static boolean isPrimeNumber(int n) { // so nguyen n < 2 khong phai la so nguyen to if (n < 2) { return false; } // check so nguyen to khi n >= 2 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 = 30 Tất cả các số nguyên tố nhỏ hơn 30 là: 2 3 5 7 11 13 17 19 23 29Bài 4. Tìm Ước chung lớn nhất (UCLN) và Bội chung nhỏ nhất (BCNN) của 2 số nguyên dương a và b nhập từ bàn phímHướng dẫn:Sử dụng Giải thuật Euclid, hay Thuật toán Euclid, là một giải thuật giúp tính ước số chung lớn nhất (ƯSCLN) của hai số một cách hiệu quả. Giải thuật này đã được biết đến từ khoảng năm 300 trước Công Nguyên. Nhà toán học Hy Lạp cổ Euclid đã viết giải thuật này trong cuốn sách toán nổi tiếng Elements.Ở dạng đơn giản nhất, thuật toán Euclid bắt đầu với cặp số nguyên dương, và tạo ra một cặp số nguyên dương mới bao gồm số nhỏ hơn và phần dư của phép chia hai số ban đầu. Quá trình được tiếp tục cho đến khi hai số trong cặp bằng nhau, giá trị lúc đó sẽ trở thành ước số chung lớn nhất của cặp số ban đầu.Code mẫu:package vn.vncoder; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); 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(); // tính USCLN của a và b System.out.println("USCLN của " + a + " và " + b + " là: " + USCLN(a, b)); // tính BSCNN của a và 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 = 8 Nhập số nguyên dương b = 20 USCLN của 8 và 20 là: 4 BSCNN của 8 và 20 là: 40Bài 5. Viết chương trình giải phương trình bậc 2: ax2 + bx + c = 0. Giải phương trình bậc hai thì chúng ta dùng công thức Delta đã học ở phổ thôngCode mẫu:package vn.vncoder; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); 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(); // 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 = 3 Nhập hằng số tự do, c = -9 Phương trình có 2 nghiệm là: x1 = 1.5 và x2 = -3.0Bài 6. Dãy số FibonacciDãy số Fibonacci được định nghĩa như sau: F0 = 0, F1 = 1, F2 = 1, Fn = F(n-1) + F(n-2) với n >= 2. Ví dụ: 0, 1, 1, 2, 3, 5, 8, ... Hãy viết chương trình tìm n số Fibonacci đầu tiên.Code mẫu:package vn.vncoder; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); 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; } else if (n == 0 || n == 1) { return n; } else { return fibonacci(n - 1) + fibonacci(n - 2); } } }Kết quả:Nhập số nguyên dương n = 9 9 số đầu tiên của dãy số fibonacci: 0 1 1 2 3 5 8 13 21Bài 7. Chuyển đổi hệ cơ số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 <= B <= 32) bất kỳ. Giả sử hệ cơ số cần chuyển là 2 <= B <= 16. Số đại điện cho hệ cơ số B > 10 là A = 10, B = 11, C = 12, D = 13, E = 14, F = 15.Bài này áp dụng cho các bài toán chuyển sang hệ nhị phân cơ số 2, hệ thập phân cơ số 10 và hệ thập lục phân (hexa) cơ số 16Hướng dẫn:- 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".
Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!
Chia sẻ bài viết- Bài 1: Bài tập làm quen với Java
- Bài 2: Bài tập Java Toán, Số học
- Bài 3: Bài tập Java về mảng, dãy số
Từ khóa » Số Chính Phương Java
-
Kiểm Tra Số Chính Phương Trong Java - Freetuts
-
Kiểm Tra Số Chính Phương Trong Java
-
Số Chính Phương – Tổng Hợp Bài Tập Và Lời Giải | Lập Trình Java
-
Kiểm Tra Số Chính Phương Trong Java - Bài Tập Java Có Lời Giải Cơ ...
-
Kiểm Tra Số Nguyên Dương Là Số Chính Phương? | VnCoding
-
Kiểm Tra Số Chính Phương Trong Java - Freetuts
-
Bài Tập : Số Chính Phương - Lập Trình Java Căn Bản - YouTube
-
Bài Tập Java - Bài 1.14: Số Chính Phương - YouTube
-
Số Chính Phương Là Gì? - Định Nghĩa, Tính Chất Và Bài Tập áp Dụng
-
Số Chính Phương Là Gì? Đặc điểm Và Cách Nhận Biết Số Chính Phương
-
Số Chính Phương Là Gì? Tính Chất Của Số Chính Phương
-
Kiểm Tra Một Số Có Phải Số Chính Phương Trong C | Lập Trình Từ Đầu
-
Tìm Số Chính Phương Trong Java Netbeans
-
Https:///2018/05/bai-tap-java-xay...
-
Viết Chương Trình In Ra Các Phần Tử Là Số Chính Phương ở Vị Trí Lẻ ...
-
Kiểm Tra Số Chính Phương Trong C/C++ - Lập Trình Không Khó
-
CTDL Và Giải Thuật - In Các Số Chính Phương
-
Kiểm Tra Số Nguyên Tố Sử Dụng C/C++ Và Java - Cổng Vàng Việt Nam