Kiểm tra một số có phải là số Armstrong hay không trong C
Trong toán học, số Armstrong
là một số mà tổng các lũy thừa bậc k của các chữ số trong số đó bằng chính số đó. Trong bài tập này, mình sẽ tìm hiểu cách kiểm tra xem một số có phải là số Armstrong
hay không bằng cách sử dụng ngôn ngữ lập trình C.
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
Chương trình kiểm tra xem một số có phải là số Armstrong hay không trong C
Cách giải quyết:
Để kiểm tra xem một số có phải là số Armstrong
hay không, mình sẽ thực hiện các bước sau:
- Viết một hàm để tính lũy thừa bậc k của một số.
- Viết một hàm để kiểm tra xem một số có phải là số
Armstrong
hay không, bằng cách sử dụng hàm tính lũy thừa bậc k. - Trong hàm main, nhập vào số cần kiểm tra và gọi hàm kiểm tra số
Armstrong
.
Hãy xem cách giải bài lập trình sau:
Bài viết này được đăng tại [free tuts .net]
File: armstrong_number.c
#include <stdio.h> #include <math.h> // Hàm tính lũy thừa bậc k của một số int power(int base, int exponent) { int result = 1; for (int i = 0; i < exponent; i++) { result *= base; } return result; } // Hàm kiểm tra xem một số có phải là số Armstrong hay không int isArmstrong(int number) { int temp = number; int sum = 0; int digits = 0; // Đếm số chữ số của số đó while (temp != 0) { digits++; temp /= 10; } temp = number; // Tính tổng các lũy thừa bậc digits của các chữ số while (temp != 0) { int digit = temp % 10; sum += power(digit, digits); temp /= 10; } // Kiểm tra nếu tổng bằng số ban đầu if (sum == number) { return 1; // Là số Armstrong } else { return 0; // Không phải số Armstrong } } int main() { int number; printf("freetuts.net"); printf("Nhap mot so: "); scanf("%d", &number); // Kiểm tra số Armstrong và in kết quả ra màn hình freetuts.net if (isArmstrong(number)) { printf("%d la so Armstrong.\n", number); } else { printf("%d khong phai la so Armstrong.\n", number); } return 0; }
Kết quả:
Giải thích:
- Trong code trên,mình đã viết hai hàm:
power
để tính lũy thừa bậc k của một số vàisArmstrong
để kiểm tra xem một số có phải là sốArmstrong
hay không. - Trong hàm main, mình nhập số cần kiểm tra và gọi hàm
isArmstrong
để kiểm tra. - Kết quả cuối cùng được in ra là thông báo về việc số nhập vào có phải là số
Armstrong
hay không.
Việc này giúp mình kiểm tra xem một số có phải là số Armstrong
hay không một cách dễ dàng trong ngôn ngữ lập trình C.