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.
remainder = originalNum % 10; result += remainder * remainder * remainder;
Và, chữ số cuối cùng bị xóa khỏi orignalNum.
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.
4.3 / 5 - (3 Đánh Giá)