Số Armstrong là gì? Cách Tìm Số Armstrong Trong C++ hay nhất 2023
Đánh giá bài này
Trong bài này chúng ta sẽ thực hiện chương trình tìm số Armstrong trong C++ cùng Tekmonk nhé. Qua bài tập này giúp các bạn biết thêm về số Armstrong là gì và cách hoạt đồng của nó.
Số Armstrong là gì?
Số Armstrong trong C++ là số có giá trị bằng tổng lập phương của các chữ số trong số đó. Ví dụ số Armstrong là: 0, 1, 2, 3, 153, 370, 407, 1634, 8208,…
Bài Toán: bạn sẽ học cách kiểm tra xem một số do người dùng nhập 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 C ++ sau:
C ++ if, if … else và if … else C ++ while và do … while Loop
Một số nguyên dương được gọi là số Armstrong (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à số Armstrong vì
153 = 1*1*1 + 5*5*5 + 3*3*3
Ví dụ: Kiểm tra số Amstrong gồm 3 chữ số
#include <iostream>
using namespace std;
int main() {
int num, originalNum, remainder, result = 0;
cout << "Enter a three-digit integer: ";
cin >> num;
originalNum = num;
while (originalNum != 0) {
// remainder contains the last digit
remainder = originalNum % 10;
result += remainder * remainder * remainder;
// removing last digit from the orignal number
originalNum /= 10;
}
if (result == num)
cout << num << " is an Armstrong number.";
else
cout << num << " is not an Armstrong number.";
return 0;
}
Output
Enter a positive integer: 371
371 is an Armstrong number.
Chương trình lặp qua vòng lặp while cho đến khi originalNum bằng 0.
Khi vòng lặp kết thúc, kết quả là tổng khối của chữ số riêng lẻ được lưu trữ.
Ví Dụ 2: Kiểm tra số Armstrong gồm n chữ số
#include <cmath>
#include <iostream>
using namespace std;
int main() {
int num, originalNum, remainder, n = 0, result = 0, power;
cout << "Enter an integer: ";
cin >> num;
originalNum = num;
while (originalNum != 0) {
originalNum /= 10;
++n;
}
originalNum = num;
while (originalNum != 0) {
remainder = originalNum % 10;
// pow() returns a double value
// round() returns the equivalent int
power = round(pow(remainder, n));
result += power;
originalNum /= 10;
}
if (result == num)
cout << num << " is an Armstrong number.";
else
cout << num << " is not an Armstrong number.";
return 0;
}
Output
Enter an integer: 1634
1634 is an Armstrong number.
trong chương trình này, số chữ số của số đã nhập được tính đầu tiên và được lưu trữ trong n.
Và, hàm pow () tính lũy thừa của các chữ số riêng lẻ trong mỗi lần lặp của vòng lặp while.
Như vậy là chúng ta đã thực hiện xong chương trình kiểm tra số Armstrong. Chúc các bạn thực hiện thành công!!!