Làm cách nào để kiểm tra số Armstrong trong Java?

Lam Cach Nao De Kiem Tra So Armstrong Trong Java



Các ' số Armstrong ” cung cấp thông tin chi tiết về các mẫu số và tính chất toán học. Nó giúp hiểu các khái niệm lý thuyết số và khám phá các mối quan hệ tự quy chiếu trong các con số. Ngoài ra, nó giúp đảm bảo tính chính xác của dữ liệu hoặc đầu vào của người dùng. Nó có thể hữu ích khi tính toàn vẹn đầu vào là rất quan trọng.

Blog này giúp tìm số Armstrong cho dữ liệu được cung cấp.







Làm cách nào để kiểm tra số Armstrong trong Java?

Các ' số Armstrong ” được kiểm tra để xác định các số thỏa mãn một thuộc tính toán học cụ thể. Nếu giá trị được cung cấp giống như phép cộng các số nguyên của chính nó được nâng lên lũy thừa của tổng số số nguyên của giá trị được cung cấp.



Bây giờ, chúng ta hãy xem một số ví dụ để hiểu rõ hơn:



Ví dụ 1: Xác định số Armstrong





Truy cập chương trình để kiểm tra xem số được cung cấp có phải là số Armstrong hay không:

nhập java.util.Scanner;
// Nhập các tiện ích cần thiết.
lớp công cộng ArmstrongChecker {
public tĩnh void main ( Sợi dây [ ] tranh luận )
// Khai báo chính ( ) phương pháp
{
Máy quét demoTest = Máy quét mới ( Hệ thống.in ) ;
Hệ thống.out.print ( 'Nhập số để kiểm tra:' ) ;
int numEle = demoTest.nextInt ( ) ;

int origNum = numEle;
chữ số int = 0 ;
trong khi ( nguồn gốcNum ! = 0 ) {
nguồn gốcNum / = 10 ;
chữ số ++;
}

int Tổng = 0 ;
int nhiệt độ = numEle;
( int tôi = 0 ; Tôi < chữ số; tôi ++ ) {
int Bạn = nhiệt độ % 10 ;
Tổng += Math.pow ( Bạn , chữ số ) ;
nhiệt độ / = 10 ;
}

nếu như ( Tổng == tên ) {
System.out.println ( tên + ' là một số Armstrong.' ) ;
} khác {
System.out.println ( tên + ' không Thỏa mãn Điều kiện cho Số Armstrong.' ) ;
}
}
}


Mô tả đoạn mã trên:



    • Đầu tiên, đối tượng cho “ Máy quét ” lớp được tạo để lấy một số nguyên từ người dùng cuối bằng cách sử dụng “ nextInt() ” và lưu trữ dữ liệu đã truy xuất trong một biến có tên “ TÊN ”.
    • Tiếp theo, giá trị lấy ra này được gán cho biến kiểu int có tên “ nguồn gốcNum ” và khởi tạo một biến có tên “ chữ số ' với ' 0 ”.
    • Sau đó, “ trong khi ” vòng lặp được sử dụng để lặp lại phép chia origNum cho 10 và tăng biến số mỗi lần cho đến khi origNum trở thành 0.
    • Sau đó, khai báo một biến “ Tổng ” và đặt giá trị của “ TÊN ” đến “ nhiệt độ ' Biến đổi. Và sử dụng “ ” lặp lại cho đến khi “ chữ số ' giá trị biến.
    • Và trong mỗi lần lặp lại vòng lặp “for”, chữ số cuối cùng của “ nhiệt độ ” được trích xuất bằng toán tử mô đun và được lưu trữ trong một biến mới “ Bạn ”. Sau đó, lập phương của chữ số sau đó được thêm vào “ Tổng ” biến bằng phương thức Math.pow().
    • Cuối cùng, “ nếu khác ” câu lệnh được sử dụng để xác định xem tổng được tính có bằng với số ban đầu do người dùng cung cấp hay không. Nếu cả hai giá trị bằng nhau thì số được cung cấp là số Armstrong và ngược lại.

Sau khi tổng hợp:


Đầu ra cho thấy số được cung cấp là số Armstrong.

Ví dụ 2: Tìm tất cả các số Armstrong cư trú trong giới hạn được cung cấp

Để tìm tất cả các số Armstrong với giá trị hoặc giới hạn được cung cấp, hãy truy cập mã bên dưới:

nhập java.util.Scanner;
nhập java.lang.Math;

lớp công khai ArmstsrongNumberVí dụ
{
boolean tĩnh isArmsNum ( int j ) {
int buff, hátĐào = 0 , kết thúc = 0 , vôi hóa = 0 ;
đánh bóng =j;
trong khi ( đánh bóng > 0 ) {
buff = buff / 10 ;
hátDig++;
}
đệm = j;
trong khi ( đánh bóng > 0 )
{
kết thúc = buff % 10 ;
tính toán += ( Math.pow ( kết thúc, hátDig ) ) ;
buff = buff / 10 ;
}
nếu như ( j == tính toán )
trở lại ĐÚNG VẬY ;
khác trở lại SAI ;
}
public tĩnh void main ( Chuỗi đối số [ ] )
// Khai báo chính ( ) phương pháp
{
int proNum;
Máy quét sc = Máy quét mới ( Hệ thống.in ) ;
Hệ thống.out.print ( 'Chèn giới hạn trên:' ) ;
proNum =sc.nextInt ( ) ;
System.out.println ( 'Số Armstrong lên đến giới hạn được cung cấp' + proNum + ' là: ' ) ;
( int k = 0 ; k < =forNum; k++ )
nếu như ( isArmsNum ( k ) )
Hệ thống.out.print ( k+ ', ' ) ;
}
}


Giải thích đoạn mã trên:

    • Đầu tiên, khai báo nhiều biến “buff”, “singDig”, “end”, và “calc” có kiểu “ int ”, bên trong phương thức kiểu boolean có tên “ isArmsNum() ”. Nó nhận được một tham số được gán cho biến có tên “ đánh bóng ”.
    • Tiếp theo, phần “ trong khi ” vòng lặp được khai báo lặp lại cho đến khi giá trị buff đạt đến “ 0 ”. Sau đó, “ đánh bóng ” là mô đun của “ 10 ” để xóa chữ số cuối cùng khỏi giá trị được cung cấp và tăng “ hátĐào ' Biến đổi.
    • Sau đó, “ trong khi ” vòng lặp được sử dụng lại trên “ đánh bóng ” biến để trích xuất chữ số cuối cùng. Lập phương của chữ số được tính bằng cách sử dụng “ Toán học. bột () ” và sau đó thêm vào “ vôi hóa ' Biến đổi.
    • Bây giờ, “ nếu như ” câu lệnh được sử dụng để kiểm tra xem giá trị được tính toán trong “ vôi hóa ” biến có bằng với giá trị được cung cấp bởi người dùng cuối hay không. Ngoài ra, hiển thị thông báo cho phù hợp.
    • Sau đó, đầu vào từ người dùng cuối được truy xuất với sự trợ giúp của “ Máy quét ” tiện ích trong “ chủ yếu() ' phương pháp.
    • Cuối cùng, “ ” vòng lặp được sử dụng để lặp lại cho đến giá trị được cung cấp và mỗi lần lặp được gọi là “ isArmsNum() ' phương pháp. Phương pháp này nhận tất cả các giá trị cho đến khi đạt được giá trị được cung cấp và kiểm tra từng giá trị cho số Armstrong.

Sau khi tổng hợp:


Đầu ra hiển thị tất cả các số Armstrong cho đến giá trị được cung cấp là “ 370 ' trong trường hợp này.

Phần kết luận

Để tìm số Armstrong, trước tiên, hãy đếm các chữ số có trong số được cung cấp. Sau đó, trích xuất từng chữ số từ số được cung cấp lần lượt với sự trợ giúp của phép tính mô đun và phép chia. Tiếp theo, nâng mỗi số nguyên của giá trị lên lũy thừa của tổng số nguyên và thêm giá trị kết quả vào một biến mới. Cuối cùng, kiểm tra xem giá trị biến thu được có bằng số cung cấp hay không, nếu bằng thì số cung cấp là số Armstrong, ngược lại thì không.