Viết chương trình kiểm tra số amstrong trong pascal
Trong bài học này, chúng ta cùng nhau đi luyện tập kiến thức về hàm bằng cách giải quyết bài tập kiểm tra số armstrong trong ngôn ngữ C/C++. Show Nếu bạn chưa biết tới khóa Học C Bá Đạo, xem bài giới thiệu khóa học tại https://nguyenvanhieu.vn/khoa-hoc-lap-trinh-c/. NỘI DUNG BÀI VIẾT
Bài tập kiểm tra số armstrongViết chương trình trên ngôn ngữ C để nhập một số nguyên và kiểm tra xem số đó có phải là số Armstrong hay không. Đưa thông báo kết quả kiểm tra lên màn hình. Số armstrong là gì?Số armstrong là số mà từng chữ số trong số đó lũy thừa với số chữ số của nó bằng chính nó. Ví dụ:
Ý tưởng giải bài toán
Ý tưởng đếm số chữ số của số n
Video hướng dẫn kiểm tra số armstrongLời giải cho bài toán kiểm tra số armstrong trong C0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
/* BT kiểm tra số Armstrong */
#include #include /* 1. Đếm số lượng chữ số 2. Tính tổng các lũy thừa: cơ số là các chữ số, số mũ là số lượng chữ số 3. So sánh và kết luận */
// Đếm số lượng chữ số của số n /* 1023 1. 102 2. 10 3. 1 4. 0 => Có 4 chữ số */ int CountDigit(int n) { int count = 0; while (n > 0) { n /= 10; ++count; } return count; }
// Kiểm tra số armstrong /* n = 1023 => 1^4 + 0^4 + 2^4 + 3^4 so sánh với 1023
1023 % 10 = 3 1023 / 10 = 102 */ bool IsArmstrong(int n) { int numDigit = CountDigit(n); int tmp = n, sum = 0, last; while (tmp > 0) { last = tmp % 10; // lấy chữ số cuối cùng tmp /= 10; // bỏ chữ số cuối cùng sum += pow(last, numDigit); } if (sum == n) return true; return false; }
int main() { int n; printf("\nNhap n = "); scanf("%d", &n);
if (IsArmstrong(n) == true) { printf("\n%d la so armstrong!", n); }else{ printf("\n%d khong la so armstrong!", n); } }
Kết quả chạy chương trình: 0 1 2 3 4 5 6 7 8 9 10 11 12
PS G:\c_cources\day_35> g++ .\ArmstrongNumber.cpp -o .\ArmstrongNumber PS G:\c_cources\day_35> .\ArmstrongNumber.exe
Nhap n = 135
135 khong la so armstrong! PS G:\c_cources\day_35> .\ArmstrongNumber.exe
Nhap n = 153
153 la so armstrong!
Theo dõi lập trình không khó tại:
Nguyễn Văn Hiếu Sáng lập cộng đồng Lập Trình Không Khó với mong muốn giúp đỡ các bạn trẻ trên con đường trở thành những lập trình viên tương lai. Tất cả những gì tôi viết ra đây chỉ đơn giản là sở thích ghi lại các kiến thức mà tôi tích lũy được. |