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

Số Osiris 3 chữ số trong C


Số Osiris là số bằng tổng các hoán vị của các mẫu con của các chữ số của nó. Ví dụ 132: {12 + 21 + 13 + 31 + 23 + 32} = 132. Kiểm tra số cho trước có phải Osiris không.

Cách tiếp cận: mỗi chữ số xuất hiện 2 lần (hàng đơn vị và hàng chục). Ta kiểm tra bằng cách nhân 11 với tổng các chữ số.

Thuật toán

isOsirisNumber(n) -

Bắt đầu
    a := chữ số cuối
    b := chữ số giữa
    c := chữ số đầu
    digit_sum := a + b + c
    nếu n = (22 * digit_sum), thì
        trả về true
    kết thúc nếu
    trả về false
Kết thúc

Ví dụ

#include <iostream>
using namespace std;

bool isOsirisNumber(int n) {
    int a = n % 10;
    int b = (n / 10) % 10;
    int c = n / 100;
    int sum = a + b + c;
    if (n == (22 * sum)) {
        return true;
    }
    return false;
}

int main() {
    int n = 132;
    if (isOsirisNumber(n))
        cout << "This is Osiris number";
    else
        cout << "This is Not Osiris number";
}

Kết quả

This is Osiris number