Cách kiểm tra số đối xứng trong Java
Trong bài viết này chúng ta sẽ kiểm tra một số có phải là số đối xứng hay không. Một số là số đối xứng khi số đảo ngược của nó cũng bằng chính nó (ví dụ: 1234321, khi đảo ngược cũng bằng chính nó).
Mình sẽ giới thiệu cách kiểm tra số đối xứng bằng vòng lặp while và vòng lặp for. Vì vậy các bạn hãy tìm hiểu hai vòng lặp này trước khi thực hiện nhé.
Kiểm tra số đối xứng bằng vòng lặp while trong Java.
Trong phần này mình sẽ kiểm tra một số có phải là số đối xứng hay không bằng cách sử dụng vòng lặp while.
Thực chất số đối xứng là một hệ quả của số đảo ngược, ta sẽ áp dụng nó để kiểm tra số đối xứng.
Bài viết này được đăng tại [free tuts .net]
while(num1 != 0) { int digit = num1 % 10; reversed = reversed * 10 + digit; num1 /= 10; }
Nếu số đảo ngược của nó bằng chính nó thì số đó chính là số đối xứng. Để tìm hiểu về số đảo ngược các bạn có thể tham khảo tại đây.
Ví dụ: Mình sẽ áp dụng thuật toán trên để viết một chương trình kiểm tra số đối xứng.
import java.util.Scanner; public class Main { public static void main(String[] args) { //sử dụng class Scanner để lấy dữ liệu từ bàn phím Scanner sc = new Scanner(System.in); //khai báo biến num1 là số cần kiểm tra đối xứng //reversed là số sau khi đảo ngược //original là biến để lưu lại số cần kiểm tra int num1, reversed = 0, original; System.out.println("\n\nNhập vào số cần kiểm tra: "); num1 = sc.nextInt(); //gán giá trị vừa nhập vào cho biến original để so sánh với reversed original = num1; //sử dụng vòng lặp while để đảo ngược num1 while(num1 != 0) { int digit = num1 % 10; reversed = reversed * 10 + digit; num1 /= 10; } //so sánh reversed (số đảo ngược) với original (số ban đầu) //nếu bằng thì là số đối xứng if(reversed == original){ System.out.println(original+ " là số đối xứng!!"); } //không bằng thì không phải số đối xứng else{ System.out.println(original+ " không phải là số đối xứng!!"); } System.out.println("\n------------------------------------"); System.out.println("Chương trình này được đăng tại Freetuts.net"); } }
Kết quả:
Kiểm tra số đối xứng bằng vòng lặp for trong Java.
Tương tự như ở phần trên, ta chỉ cần thay vòng lặp for cho vòng lặp while để kiểm tra số đối xứng.
for(;num1 != 0; num1 /= 10) { int digit = num1 % 10; reversed = reversed * 10 + digit; }
Ví dụ: Mình sử dụng vòng lặp for để viết một chương trình kiểm tra số đối xứng hoàn chỉnh bằng ngôn ngữ Java.
import java.util.Scanner; public class Main { public static void main(String[] args) { //sử dụng class Scanner để lấy dữ liệu từ bàn phím Scanner sc = new Scanner(System.in); //khai báo biến num1 là số cần kiểm tra đối xứng //reversed là số sau khi đảo ngược //original là biến để lưu lại số cần kiểm tra int num1, reversed = 0, original; System.out.println("\n\nNhập vào số cần kiểm tra: "); num1 = sc.nextInt(); //gán giá trị vừa nhập vào cho biến original để so sánh với reversed original = num1; //sử dụng vòng lặp for để đảo ngược num1 for(;num1 != 0; num1 /= 10) { int digit = num1 % 10; reversed = reversed * 10 + digit; } //so sánh reversed (số đảo ngược) với original (số ban đầu) //nếu bằng thì là số đối xứng if(reversed == original){ System.out.println(original+ " là số đối xứng!!"); } //không bằng thì không phải số đối xứng else{ System.out.println(original+ " không phải là số đối xứng!!"); } System.out.println("\n------------------------------------"); System.out.println("Chương trình này được đăng tại Freetuts.net"); } }
Kết quả:
Như vậy là chúng ta đã tìm hiểu xong cách cách kiểm tra một số có phải là số đối xứng hay không. Các bạn có thể tham khảo các bài tập Java khác tại Bài tập Java, Chúc các bạn thành công !!!