Trong bài này, chúng ta sẽ hiểu cách hiển thị số Armstrong giữa hai số đã cho trong Java. Số Armstrong là một số có giá trị bằng tổng các lập phương của các chữ số riêng của nó.
Một số nguyên được gọi là số Amstrong có thứ tự n nếu mỗi chữ số tách biệt nhau ra và được lập phương và cộng lại thì tổng sẽ giống như số, tức là abcd ... =a3 + b3 + c3 + d3 + ...
Trong trường hợp một số Amstrong có 3 chữ số thì tổng các lập phương của mỗi chữ số bằng chính số đó. Ví dụ:153 là một số Armstrong.
153 = 13 + 53 + 33
Ví dụ:370 là số Armstrong.
370 = 27 + 343 + 0
Dưới đây là một minh chứng về điều tương tự -
Đầu vào
Giả sử đầu vào của chúng tôi là -
1 & 500
Đầu ra
Đầu ra mong muốn sẽ là -
The Armstrong numbers between 1 and 500 are 1, 153, 370, 371, 407
Thuật toán
Step1 - Start Step 2 - Declare four integers: my_input_1, my_input_2, i and sum Step 3 - Prompt the user to enter two integer value/ define the integers Step 4 - Read the values Step 5 - Run a for loop to generate Armstrong numbers using %, / and * operator Step 6 - Divide by 10 and get remainder for ‘check’ . Step 7 - Multiply ‘rem’ thrice, and add to ‘sum’, and make that the current ‘sum’. Step 8 - Divide ‘check’ by 10, and make that the current ‘check’. Step 9 - Display the result Step 10 - Stop
Ví dụ 1
Ở đây, đầu vào đang được người dùng nhập dựa trên lời nhắc. Bạn có thể thử trực tiếp ví dụ này trong công cụ nền tảng mã hóa của chúng tôi .
import java.util.Scanner; public class ArmstrongNumbers { public static void main(String args[]){ int my_low, my_high, check, my_rem, my_sum, i; Scanner my_scanner = new Scanner(System.in); System.out.println("Required packages have been imported"); System.out.println("A scanner object has been defined "); System.out.println("Enter the first number :"); my_low = my_scanner.nextInt(); System.out.println("Enter the limit :"); my_high = my_scanner.nextInt(); System.out.println("The Armstrong numbers are :"); for (i = my_low; i<my_high; i++){ my_sum = 0; check = i; while(check != 0) { my_rem = check % 10; my_sum = my_sum + (my_rem * my_rem * my_rem); check = check / 10; } if(my_sum == i){ System.out.println(i); } } } }
Đầu ra
Required packages have been imported A scanner object has been defined Enter the first number : 1 Enter the limit : 500 The Armstrong numbers are : 1 153 370 371 407
Ví dụ 2
Ở đây, số nguyên đã được xác định trước đó và giá trị của nó được truy cập và hiển thị trên bảng điều khiển.
public class ArmstrongNumbers { public static void main(String args[]){ int my_low, my_high, check, my_rem, my_sum, i; my_low = 1; my_high = 500; System.out.printf("The first number is %d and the limit is %d ", my_low, my_high); System.out.println("\nThe Armstrong numbers are :"); for (i = my_low; i<my_high; i++){ my_sum = 0; check = i; while(check != 0) { my_rem = check % 10; my_sum = my_sum + (my_rem * my_rem * my_rem); check = check / 10; } if(my_sum == i){ System.out.println(i); } } } }
Đầu ra
The first number is 1 and the limit is 500 The Armstrong numbers are : 1 153 370 371 407