Trong ví dụ này, bạn sẽ học viết một chương trình bằng JavaScript để kiểm tra xem một số có phải là số Armstrong hay không.
Để hiểu ví dụ này, bạn nên có kiến thức về các chủ đề lập trình JavaScript sau:
- Toán tử JavaScript
- JavaScript while và do… while Loop
Một số nguyên dương được gọi là số Amstrong (bậc n) nếu
abcd… = a n + b n + c n + d n +…
Trong trường hợp số Amstrong có 3 chữ số, 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 vì
153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3
Tương tự, 1634 là một số Armstrong vì:
1634 = 1 * 1 * 1 * 1 + 6 * 6 * 6 * 6 * + 3 * 3 * 3 * 3 + 4 * 4 * 4 * 4
Ví dụ 1: Kiểm tra số lượng ba chữ số của Armstrong
// program to check an Armstrong number of three digits let sum = 0; const number = prompt('Enter a three-digit positive integer: '); // create a temporary variable let temp = number; while (temp> 0) ( // finding the one's digit let remainder = temp % 10; sum += remainder * remainder * remainder; // removing last digit from the number temp = parseInt(temp / 10); // convert float into integer ) // check the condition if (sum == number) ( console.log(`$(number) is an Armstrong number`); ) else ( console.log(`$(number) is not an Armstrong number.`); )
Đầu ra
Nhập số nguyên dương có ba chữ số: 153 153 là số Amstrong.
Chương trình trên lấy đầu vào từ người dùng. Sau đó,
- Số do người dùng nhập được lưu trữ trong một biến tạm thời
temp
. - Một
while
vòng lặp được sử dụng để lặp lại một giá trị có ba chữ số.- Các nhà điều hành mô đun
%
được sử dụng để có được mỗi chữ số. Khi chia một số cho 10 thì số dư là chữ số cuối cùng. Trong lần lặp đầu tiên,153 % 10
cho 3 . - Lập phương của chữ số còn lại được tính bằng cách nhân chữ số đó với ba lần. Và khối lập phương được thêm vào
sum
biến. - Chữ số được chia cho 10 bỏ chữ số cuối cùng.
- Các
while
vòng lặp tiếp tục lặp lại và chia số bằng 10 cho đến khi số là 0 .
- Các nhà điều hành mô đun
- Cuối cùng, tổng được so sánh với số do người dùng nhập. Nếu tổng và số bằng nhau thì số đó là số Amstrong.
Lưu ý : Trong chương trình trên, khối lập phương của một số có thể được tính bằng toán tử lũy thừa **
. Ví dụ,sum += remainder ** 3;
Ví dụ 2: Kiểm tra số Armstrong gồm n chữ số
// program to check an Armstrong number of n digits // take an input const number = prompt("Enter a positive integer"); const numberOfDigits = number.length; let sum = 0; // create a temporary variable let temp = number; while (temp> 0) ( let remainder = temp % 10; sum += remainder ** numberOfDigits; // removing last digit from the number temp = parseInt(temp / 10); // convert float into integer ) if (sum == number) ( console.log(`$(number) is an Armstrong number`); ) else ( console.log(`$(number) is not an Armstrong number.`); )
Đầu ra
Nhập số nguyên dương: 92727 92727 là số Amstrong
Trong chương trình trên, một số Armstrong gồm n chữ số được kiểm tra.
Khi người dùng nhập một số, nó được coi là một chuỗi. Các length
tài sản trả về chiều dài của một chuỗi.
Số do người dùng nhập được lưu trữ trong một temp
biến. Và một while
vòng lặp được sử dụng để lặp lại cho đến khi giá trị của nó nhỏ hơn 0 . Mỗi chữ số của số được nâng lên thành lũy thừa của độ dài của số đó.