Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

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


Cho số n nhập từ người dùng, kiểm tra có phải số Armstrong hay không.

Số Armstrong là khi tổng các chữ số lũy thừa theo số chữ số (cấp số) bằng chính số đó.

Biểu diễn đơn giản:

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

Công thức:

wxyz... = pow(w, n) + pow(x, n) + pow(y, n) + pow(z, n) + ...

Thuật toán

BAT DAU
Bước 1: Khai báo hàm tính lũy thừa
    int power(int a, int b)
        vòng lặp while b>0
            power = power * a
            b--
        kết thúc vòng lặp
        trả về power
Bước 2: Khai báo hàm đếm số chữ số
    int count(int n)
        i = 0
        while n != 0
            i++
            n = n / 10
        trả về i
Bước 3: Hàm kiểm tra Armstrong
    int armstrong(int n)
        x = count(n)
        rem = 0, m = 0
        while n
            rem = n % 10
            m = m + power(rem, x)
            n = n / 10
        trả về m
Bước 4: main
    n = 1634
    nếu n == armstrong(n) in "la so Armstrong"
    else in "khong phai so Armstrong"
KET THUC

Ví dụ

#include <stdio.h>
int power(int a, int b) {
    int power = 1;
    while (b > 0) {
        power *= a;
        b--;
    }
    return power;
}
int count(int n) {
    int i = 0;
    while (n != 0) {
        i++;
        n = n / 10;
    }
    return i;
}
int armstrong(int n) {
    int x = count(n);
    int rem = 0, m = 0;
    while (n) {
        rem = n % 10;
        m += power(rem, x);
        n /= 10;
    }
    return m;
}
int main(int argc, char const *argv[]) {
    int n = 1634;
    if (n == armstrong(n)) {
        printf("%d la so Armstrong\n", n);
    } else
        printf("%d khong phai so Armstrong\n", n);
    return 0;
}

Kết quả

1634 la so Armstrong