Trong ví dụ này, bạn sẽ học cách kiểm tra xem một số nguyên 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âu lệnh C 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… = an + bn + cn + dn +
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
Kiểm tra Armstrong Số có ba chữ số
#include int main() ( int num, originalNum, remainder, result = 0; printf("Enter a three-digit integer: "); scanf("%d", &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) printf("%d is an Armstrong number.", num); else printf("%d is not an Armstrong number.", num); return 0; )
Đầu ra
Nhập số nguyên có ba chữ số: 371 371 là số Amstrong.
Kiểm tra Armstrong Số chữ số n
#include #include int main() ( int num, originalNum, remainder, n = 0; float result = 0.0; printf("Enter an integer: "); scanf("%d", &num); originalNum = num; // store the number of digits of num in n for (originalNum = num; originalNum != 0; ++n) ( originalNum /= 10; ) for (originalNum = num; originalNum != 0; originalNum /= 10) ( remainder = originalNum % 10; // store the sum of the power of individual digits in result result += pow(remainder, n); ) // if num is equal to result, the number is an Armstrong number if ((int)result == num) printf("%d is an Armstrong number.", num); else printf("%d is not an Armstrong number.", num); 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 một số nguyên được tính trước và được lưu trữ trong n
. Và, pow()
hàm được sử dụng để tính lũy thừa của các chữ số riêng lẻ trong mỗi lần lặp của for
vòng lặp thứ hai .