Chương trình C ++ để kiểm tra số Armstrong

Trong ví dụ này, 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à Nested if… else
  • C ++ 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 một 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 using namespace std; int main() ( int num, originalNum, remainder, result = 0; cout <> 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; )

Đầu ra

 Nhập số nguyên dương: 371 371 là số Amstrong.

Trong chương trình, chúng tôi lặp qua vòng lặp while cho đến khi originalNum bằng 0.

Trong mỗi lần lặp lại của vòng lặp, khối lập phương của chữ số cuối cùng của orignalNum được thêm vào kết quả.

 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 của khối lập phương chữ số riêng lẻ.

Ví dụ: Kiểm tra số Armstrong gồm n chữ số

 #include #include using namespace std; int main() ( int num, originalNum, remainder, n = 0, result = 0, power; cout <> 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; )

Đầu ra

 Nhập một số nguyên: 1634 1634 là một số Armstrong.

Trong chương trình này, số chữ số của số đã nhập được tính trước và được lưu trữ trong n.

Và, pow()hàm tính toán lũy thừa của các chữ số riêng lẻ trong mỗi lần lặp của whilevòng lặp.

thú vị bài viết...