SIMPLE
STRING
ARRAY
SORTING
POINTER
CALCULATION
NUMBER
OTHER
C
BÀI TẬP C
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

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.

test php

banquyen png
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ả:

z5271883908475 96cb312cb9c2c4784c2cea305df57fbf jpgz5271884943393 f922a802e5d15c5cfe25e38c9c8d9369 jpg

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.

Cùng chuyên mục:

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý chuỗi (string.h) trong C/C++

Các hàm xử lý chuỗi (string.h) trong C/C++

Thread Pools và Parallel Algorithms trong C++

Thread Pools và Parallel Algorithms trong C++

Tạo và quản lý các Multithreading trong C++

Tạo và quản lý các Multithreading trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Try, Catch, và Throw của Exception Handling trong C++

Try, Catch, và Throw của Exception Handling trong C++

Cách sử dụng Lambda Expressions trong C++

Cách sử dụng Lambda Expressions trong C++

Sử dụng weak_ptr trong C++

Sử dụng weak_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng unique_ptr trong C++

Sử dụng unique_ptr trong C++

Tổng quan về Smart Pointers trong C++

Tổng quan về Smart Pointers trong C++

Sử dụng Iterators trong STL của C++

Sử dụng Iterators trong STL của C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng trong List trong C++

[Iterator] Sử dụng trong List trong C++

[STL] Sử dụng Vector trong C++

[STL] Sử dụng Vector trong C++

Tổng quan về Iterators trong C++

Tổng quan về Iterators trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

Top